Python根据特定条件选择数据帧行和列

2024-04-25 19:21:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下资料:

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

Tags: 方法dflower例子xxxbbbccc资料
1条回答
网友
1楼 · 发布于 2024-04-25 19:21:25

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

相关问题 更多 >