返回 pandas 数据框中特定值的列名

新手上路,请多包涵

我在其他语言(例如 R 或 SQL)中找到了此选项,但我不太确定如何在 Pandas 中执行此操作。

所以我有一个包含 1262 列和 1 行的文件,每次出现特定值时都需要返回列标题。

比如说这个测试数据框:

 Date               col1    col2    col3    col4    col5    col6    col7
01/01/2016 00:00   37.04   36.57   35.77   37.56   36.79   35.90   38.15

我需要找到列名,例如 where value = 38.15。最好的方法是什么?

谢谢

原文由 Helena K 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 436
2 个回答

看到你只有一行,那么你可以调用 iloc[0] 结果并使用它来屏蔽列:

 In [47]:
df.columns[(df == 38.15).iloc[0]]

Out[47]:
Index(['col7'], dtype='object')

分解以上内容:

 In [48]:
df == 38.15

Out[48]:
             Date   col1   col2   col3   col4   col5   col6  col7
01/01/2016  False  False  False  False  False  False  False  True

In [49]:
(df == 38.15).iloc[0]

Out[49]:
Date    False
col1    False
col2    False
col3    False
col4    False
col5    False
col6    False
col7     True
Name: 01/01/2016, dtype: bool

您还可以将 idxmax 与参数 axis=1 一起使用:

 In [52]:
(df == 38.15).idxmax(axis=1)[0]

Out[52]:
'col7'

原文由 EdChum 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用数据框切片,然后获取列名:

 df.ix[:,df.loc[0] == 38.15].columns

输出:

 Index([u'col7'], dtype='object')

原文由 ysearka 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏