在数据框中找到特定元素的列名

时间:2019-05-25 07:38:47

标签: python pandas dataframe

假设我在python中有一个具有以下结构和数据的数据框

'Column1' 'Column2'
 value1   value2
 value3   value4

如何找到value4的列名?

我可以使用data.iloc [0,0]或data.iloc [0:1; 0:1]来获取“ value1”,但是如何在不打印整个列值的情况下找到它的标签“ Column1”手动检查以使用for循环进行匹配。

2 个答案:

答案 0 :(得分:0)

您可以在数据框中的任意位置搜索该值,并删除不存在的列:

df[df == 'value4'].dropna(axis=1, how='all').columns.tolist()

这将返回['Column2']

答案 1 :(得分:0)

使用:

c = df.columns[(df == 'value4').any()].tolist()
print (c)
['Column2']

如果需要第一个匹配值,请将iternext一起使用-如果不存在,则返回默认值:

c = next(iter(df.columns[(df == 'value4').any()].tolist()), 'no match')
print (c)
Column2

详细信息

首先测试所有值:

print ((df == 'value4'))
   Column1  Column2
0    False    False
1    False     True

然后添加DataFrame.any来测试每列至少一个True

print ((df == 'value4').any())
Column1    False
Column2     True
dtype: bool

最后一个过滤器列名称:

print (df.columns[(df == 'value4').any()])
Index(['Column2'], dtype='object')