2024-06-06 18:22:30 发布
网友
我在其他语言(如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。最好的方法是什么?
谢谢
由于只有一行,因此可以对结果调用iloc[0],并使用此函数来屏蔽列:
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
也可以将^{}与参数axis=1一起使用:
axis=1
In [52]: (df == 38.15).idxmax(axis=1)[0] Out[52]: 'col7'
只是为了把一些不同的东西扔进拳击场:
row = df.iloc[0] row.reset_index().set_index(0).loc[38.15]
可以使用数据帧切片,然后获取列名称:
df.ix[:,df.loc[0] == 38.15].columns
输出:
Index([u'col7'], dtype='object')
由于只有一行,因此可以对结果调用
iloc[0]
,并使用此函数来屏蔽列:分解以上内容:
也可以将^{} 与参数
axis=1
一起使用:只是为了把一些不同的东西扔进拳击场:
可以使用数据帧切片,然后获取列名称:
输出:
相关问题 更多 >
编程相关推荐