我有以下内容:
cl1 cl2 cl3 .... cln
0 aaa bbb ccc .... nnn
1 bbb aaa ccc .... nnn
2 xxx xxx xxx .... xxx
需要选择行,列的值(其中任何一个)。lower()=='aaa' 因此它是0和1行,输出应为:
cl1 cl2 cl3 .... cln
0 aaa bbb ccc .... nnn
1 bbb aaa ccc .... nnn
我尝试了很多方法,但是所有方法都需要指定列名,但就我而言,我不知道列名。
因此,如果我知道列名,基本上可以进行类似的操作:
df.loc[~df['something1'].str.lower().str.strip().isin(['something2'])]
答案 0 :(得分:2)
您可以使用的IIUC:
df[df.eq('aaa').any(axis=1)]
cl1 cl2 cl3 cln
0 aaa bbb ccc nnn
1 bbb aaa ccc nnn
如果必须考虑lower()
:
df[df.apply(lambda x: x.str.lower()).eq('aaa').any(1)] #thanks Chris
或者:
df[df.applymap(str.lower).eq('aaa').any(axis=1)]
第二个更快,第一个可以处理NaN。