为了账号安全,请及时绑定邮箱和手机立即绑定

如何将熊猫系列中的“NaN”字符串转换为 dropna 的空值?

如何将熊猫系列中的“NaN”字符串转换为 dropna 的空值?

Cats萌萌 2021-09-14 10:10:45
我尝试了几种方法来清理NaNDataFrame 中包含特定系列的行,结果发现每个NaN条目都是'NaN'字符串,而不是空值。在我的具体示例中,每一行代表一个国家,因此我想'GDP per Capita'从 DataFrame的列中删除所有没有 GDP 值的国家。我尝试过的一些事情(失败了):df_noGDP = df df_noGDP.dropna(axis=0, subset=['GDP per Capita'])和df_noGDP = df.loc[df['GDP per Capita'] != np.nan]当我打电话时df_noGDP,我看到没有NaN删除任何值。我想我要么在某处犯了一个愚蠢的语法错误,要么我需要转换我的数据类型。
查看完整描述

2 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

做:

df_noGDP=df_noGDP.replace('NaN',np.nan)

或者:

df_noGDP.replace('NaN','np.nan,inplace=1)

然后你的东西会按预期工作。


查看完整回答
反对 回复 2021-09-14
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

首先将您的字符串转换为NaN值:


df = df.replace('NaN', np.nan)

然后分配回或指定您的方法就地:


df = df.dropna(subset=['GDP per Capita'])           # not in place version

df.dropna(subset=['GDP per Capita'], inplace=True)  # in place version

或者,使用locwith notnull,因为NaN != NaN 按设计:


df = df.loc[df['GDP per Capita'].notnull()]


查看完整回答
反对 回复 2021-09-14
  • 2 回答
  • 0 关注
  • 201 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信