Skip to main content
 首页 » 编程设计

python之如果基于数据框的行和列值满足特定条件,如何获取列标题

2025年05月04日10del

我有一个这样的数据框:

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']