我嘗試了幾種方法來清理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)
然后你的東西會按預期工作。

慕娘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()]
添加回答
舉報
0/150
提交
取消