我有一个这样的数据框:
col1 x y z
A yes no yes
B no no yes
C no yes no
D yes no yes
E no no yes
F yes yes no
我想选择这样的数据,如果我的标准是为 A 找到所有 yes,我应该得到 [x,z],即 A 的值 yes
如果 B,[z] C 应该给 [y]
怎么办?
请您参考如下方法:
首先按col1列创建索引,按loc索引,按值比较,最后得到index值到list:
df = df.set_index('col1')
def get_val(df, idx, val):
a = df.loc[idx].eq(val)
return a.index[a].tolist()
print (get_val(df, 'A', 'yes'))
['x', 'z']
print (get_val(df, 'B', 'yes'))
['z']
print (get_val(df, 'C', 'yes'))
['y']
