如何根据另一列的特定值从一列中删除NaN [英] How to drop NaN from one column according to another columns specific value

查看:19
本文介绍了如何根据另一列的特定值从一列中删除NaN的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

不知道如何根据另一个特定列的值从特定列中删除NaN值。 部分数据帧(df):

            vol.            group
1186      10,448,898          1
1187      nan                 0
1188      35,047,520          1
          ...   
8329      130,703             0
8330      241,489             1
8332      nan                 1
8333      101,142             0
8334      nan                 1

我需要删除vol.中的NaN值,但仅当group中的对应值为1时。

我已尝试:

df.loc[df['group'] == 1,'vol.'].dropna(inplace=True)

df仍具有所有值,因为Dropna无效。

推荐答案

可以更改逻辑-在boolean indexing中没有1nan的情况下选择所有值:

#if necessary convert strings nan to missing values `NaN`s
df['vol.'] = df['vol.'].replace('nan', np.nan)


df = df[(df['group'] != 1) | df['vol.'].notna()]
print (df)
            vol.  group
1186  10,448,898      1
1187         NaN      0
1188  35,047,520      1
8329     130,703      0
8330     241,489      1
8333     101,142      0

这篇关于如何根据另一列的特定值从一列中删除NaN的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆