有没有一种方法可以选择一些预期行值的列

时间:2019-10-30 03:20:28

标签: python pandas

我正在处理df,并希望通过过滤一行的值来选择满足条件的列。

我只知道一种愚蠢的方法:循环查询一个单元格值,然后得到我的期望 列。

>>> df = pd.DataFrame({'A':list('abcd'),'B':list('1bfe'),'C':list('ghgk')})
>>> df
   A  B  C
0  a  1  g
1  b  b  h
2  c  f  g
3  d  e  k
>>> #get columns ,condition: second row  equal 'b'
... 
>>> cols = list()
>>> for val in df:
...     if df.loc[1,val] == 'b':
...             cols.append(val)
... 
>>> cols
['A', 'B']

3 个答案:

答案 0 :(得分:1)

使用

df.columns[df.loc[1]=='b']

答案 1 :(得分:0)

有一种在熊猫数据框中进行查询的好方法。

df = pd.DataFrame({'A':list('abcd'),'B':list('1bfe'),'C':list('ghgk')})
df.query("A == 'a' and B == '1'")

此查询将基于列Aa匹配且列B1匹配的事实返回数据帧的第一行

答案 2 :(得分:0)

在电话上无法测试,但可以运行:

df.columns[df.loc[1].eq('b')]