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

我尝试了几种方法来清理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删除任何值。我想我要么在某处犯了一个愚蠢的语法错误,要么我需要转换我的数据类型。


Cats萌萌
浏览 202回答 2
2回答

冉冉说

做:df_noGDP=df_noGDP.replace('NaN',np.nan)或者:df_noGDP.replace('NaN','np.nan,inplace=1)然后你的东西会按预期工作。

慕娘9325324

首先将您的字符串转换为NaN值:df = df.replace('NaN', np.nan)然后分配回或指定您的方法就地:df = df.dropna(subset=['GDP per Capita'])           # not in place versiondf.dropna(subset=['GDP per Capita'], inplace=True)  # in place version或者,使用locwith notnull,因为NaN != NaN 按设计:df = df.loc[df['GDP per Capita'].notnull()]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python