首页 > 解决方案 > 根据熊猫中的列值选择列标题名称

问题描述

嗨,我有以下数据框:

    col1    col2    col3    col4    col5
row1    0      1    0         0      0
row2    0      0    0         0      1

我想创建一个数据框

row1    col2
row2    col5

实际上我想选择值为1的列名。

标签: pythonpandasdataframe

解决方案


一种方法可能是

df.idxmax(1)

使用您给定的测试数据:

In [113]: df
Out[113]:
      col1  col2  col3  col4  col5
row1     0     1     0     0     0
row2     0     0     0     0     1

In [114]: df.idxmax(1)
Out[114]:
row1    col2
row2    col5
dtype: object

根据您在下面提到的评论,如果包含'row1'并且'row2'还不是您的索引的列,您可以df.set_index先使用,然后idxmax按上述方式使用:

In [120]: df
Out[120]:
  index  col1  col2  col3  col4  col5
0  row1     0     1     0     0     0
1  row2     0     0     0     0     1

In [121]: df.set_index('index').idxmax(1)
Out[121]:
index
row1    col2
row2    col5
dtype: object

推荐阅读