pandas - 如何更换带有 np.nan 的值——使用 Pandas read_pickle() 导入的文件
问题描述
我Pandas Data frame
通过pickle ('P')
使用pd.read_pickle()
. 下面是数据框的头部信息。看起来<NA>
值是在没有数据的地方创建的。我想将这些<NA>
值转换为np.nan
.
sequels = pd.read_pickle('D:\Learning\Datacamp\Datasets/sequels.p')
print(sequels.head())
id title sequel
0 19995 Avatar <NA>
1 862 Toy Story 863
2 863 Toy Story 2 10193
3 597 Titanic <NA>
4 24428 The Avengers <NA>
我尝试使用一些方法 -sequels.replace('<NA>', np.nan), sequels.fillna(np.nan)
并使用正则表达式 - sequels.replace(r'^\s*$', np.nan, regex=True)
。
在所有这些情况下,这些值都不会被替换。有什么建议么?
解决方案
如果将缺失值替换NaN
为浮点数 get np.nan
,因为在原始列中使用整数 na:
df['sequel'] = df['sequel'].astype('float')
print (df)
id title sequel
0 19995 Avatar NaN
1 862 Toy Story 863.0
2 863 Toy Story 2 10193.0
3 597 Titanic NaN
4 24428 The Avengers NaN
解决方案replace
:
df['sequel'] = df['sequel'].replace({pd.NA: np.nan})
print (df)
id title sequel
0 19995 Avatar NaN
1 862 Toy Story 863.0
2 863 Toy Story 2 10193.0
3 597 Titanic NaN
4 24428 The Avengers NaN
或者:
df['sequel'].replace({pd.NA: np.nan}, inplace=True)
推荐阅读
- c# - 在报表数据集中输入数据
- java - 如何解决无法找到或加载主类?
- eclipse - 如何像 Zend Studio 一样在 Eclipse 中实现远程系统?
- php - 如何在另一个控制器 cakephp 1.3 中使用 App 控制器方法
- cmd - Windows 10 上的 bcdedit 命令问题
- json - Swift,如何使用 Decodable 和 Codable 解析/解码 JSON,当密钥未知/动态时
- spring-security - 如何在 Spring WebFlux 中使用 @PreAuthorize?
- django - 覆盖模型字段选择选项未通过验证
- android - Phonegap - 调用外部 PHP 的问题
- javascript - 如何通过量角器从日历中选择日期?