如何在 <NA> Pandas 数据帧中替换为 NaN?



我的DataFrame中的一些列有<NA>的实例,其类型为pandas._libs.missing.NAType

我想用np.nan代替NaN

在使用pd.read_csv()时,我看到<NA>的实例可以被替换的问题。

但是因为我的Pandas DataFrame是从Spark DataFrame创建的,所以我不使用pd.read_csv()函数。

请建议。

我对replace解决方案没有任何运气,但能够将<NA>转换为np。通过将列转换为float -df['my_col'].astype(float).

使用replace,也是升级熊猫的必要条件。

df = pd.DataFrame({'age':[pd.NA, 4, 8]})
df = df.replace(pd.NA, np.nan)
print (df)
age
0  NaN
1  4.0
2  8.0

使用Pandas v1.3.1Numpy v1.20.3,您可以使用df.where(),当条件为False时,如以下所示:

$> df = pd.DataFrame({'age':[pd.NA, 4, 8]})
$> print(df)
age
0  <NA>
1     4
2     8
$> print(type(df.iloc[0]['age']))
pandas._libs.missing.NAType
$> df = df.where(pd.notnull(df), np.nan)  # Replace pd.NA, np.nan and None by np.nan
$> print(df)
age
0  NaN
1    4
2    8
$> print(type(df.iloc[0]['age']))
float

PS:你也这样做:

$> df = df.where(~pd.isna(df), np.nan)

相关内容

  • 没有找到相关文章

最新更新