假设我在python中有一个具有以下结构和数据的数据框
'Column1' 'Column2'
value1 value2
value3 value4
如何找到value4的列名?
我可以使用data.iloc [0,0]或data.iloc [0:1; 0:1]来获取“ value1”,但是如何在不打印整个列值的情况下找到它的标签“ Column1”手动检查以使用for循环进行匹配。
答案 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']
如果需要第一个匹配值,请将iter
与next
一起使用-如果不存在,则返回默认值:
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')