从中排除特定列

2024-03-28 16:09:28 发布

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

我有一个dataframe,我想在其中删除除特定列以外的所有列中的值NA(在本例中为“V1”)

df=

 V1   V2   V3   V4  
  A    10   20   NA   
  B    NA   NA   NA   
  C     5   20   3     
  D    15   20   4    
  E    NA   10   5

输出=

 V1   V2   V3   V4  
  A    10   20   NA      
  C     5   20   3     
  D    15   20   4    
  E    NA   10   5

有人能告诉我怎么做吗我试过了

df.dropna(how='all')

但由于第一列的原因,它无法移除


Tags: dataframedf原因v3allhowv2v4
1条回答
网友
1楼 · 发布于 2024-03-28 16:09:28

^{}subset参数一起使用:

df.dropna(subset=df.columns.difference(['V1']), how='all')

  V1    V2    V3   V4
0  A  10.0  20.0  NaN
2  C   5.0  20.0  3.0
3  D  15.0  20.0  4.0
4  E   NaN  10.0  5.0

另一个选项(如果V1值是唯一的)是首先将V1设置为索引,然后您的dropna调用将简化:

df.set_index('V1').dropna(how='all')


      V2    V3   V4
V1                 
A   10.0  20.0  NaN
C    5.0  20.0  3.0
D   15.0  20.0  4.0
E    NaN  10.0  5.0

如果V1的值是唯一的,并且它是数据集中唯一的非数字列,那么这个值就更有意义

相关问题 更多 >