根据熊猫中的列值选择列标题名称

时间:2018-10-07 13:21:47

标签: python pandas dataframe

嗨,我有以下数据框:

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

我想创建一个像这样的数据框

row1    col2
row2    col5

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

1 个答案:

答案 0 :(得分:0)

一种方法可能是

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