通过过滤多个列(list或base.Index)创建新的数据帧

2024-06-17 10:37:51 发布

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

我注意到关于这个话题有很多问题。 到现在为止,我找到了一些接近我需要的东西:

newdf = df[df[df.columns].isin(['list','of','values'])] 

但是这个方法会删除所有不在df.columns中保持相同df.shape的值

我需要的是这样的东西:

newdf = df[df[df.columns[1:]].isin(['val1','val3','val7'])] 


 df                      newdf                       
 col1  col2   col3       col1  col2  col3
 A     val1   val5       A     val1  val5 
 B     val2   val2       C     val3  val3
 C     val3   val3       D     val4  val7
 D     val4   val7 

Tags: columnsdflistcol2col3col1话题val1
1条回答
网友
1楼 · 发布于 2024-06-17 10:37:51

IIUIC,你需要any

In [252]: df[df[df.columns[1:]].isin(['val1','val3','val7']).any(1)]
Out[252]:
  col1  col2  col3
0    A  val1  val5
2    C  val3  val3
3    D  val4  val7

相关问题 更多 >