簡體   English   中英

如何將pandas系列中的'NaN'字符串轉換為dropna的空值?

[英]How to convert 'NaN' strings in a pandas Series to null values for dropna?

我嘗試了幾種方法來清除DataFrame中特定系列中包含NaN行,只是意識到每個NaN條目都是'NaN'字符串,而不是空值。

在我的特定示例中,每一行代表一個國家,因此我想從DataFrame中刪除'GDP per Capita'列中沒有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值。 我認為我在某個地方犯了一個愚蠢的語法錯誤,或者我需要轉換我的數據類型。

做:

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

要么:

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

然后您的東西將按預期工作。

首先將您的字符串轉換為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

或者,將locnotnull一起notnull ,因為NaN != NaN 是設計 notnull

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM