python - Pandas - 将数据框列导出为保留空值的整数
问题描述
我正在尝试将我的数据框导出到 csv,其中 POSITION 列中的值格式化为整数而不是浮点数。从 csv 导入 df 后,我的数据正确显示:
POSITION
1.0
2.0
3.0
4.0
然后在 POSITION 列数据的某些操作(sort_values、drop_duplicates、使用 np.nan 添加空值)期间,将其更改为浮点数:
POSITION
1.0
2.0
NULL
3.0
4.0
我已经设法使用 astype(np.int64) 方法将 df 转换回整数(pd.to_numeric 不起作用)并且不需要的零已经消失。但是在导出到 csv 期间,所有这些都消失了。我在此列中也有 NULL 值,因此我将它们替换为一些我想重置为 NULL 的假值。但是替换假值会带回不需要的浮点格式。
这没有删除浮动:
df['POSITION'] = df['POSITION'].apply(pd.to_numeric)
这已删除浮动但添加了虚拟值“-1”:
df['POSITION'] = df['POSITION'].fillna(-1).astype(np.int64)
这已经删除了虚拟值“-1”,但也删除了 POSITION 列中的每个值:
df['POSITION'] = df.POSITION.replace(-1, np.nan, inplace=True)
如果我选择“替换”下面的代码,我会删除“-1”,但浮点格式又回来了:
df.loc[df['POSITION'] == -1, 'POSITION'] = np.nan
解决方案
推荐阅读
- haskell - 根据子类优化超类方法
- ffmpeg - ffmpeg 实时网络摄像头颜色键减法并在桌面上显示提要(减色透明/桌面透视可见))
- java - Instant Apps:如何添加外部库?
- jquery - 执行 onSelect 后显示 jQuery datepicker
- swagger - 如何组合多个招摇的文件?
- c++ - 从 C++ 中的三元素映射中提取第二个元素
- javascript - AngularJS:跨多个 div 的 ng-repeat
- c++ - boost::spirit::x3 解析比 strsep 解析慢
- node.js - MAC:NPM 全局安装模块但找不到命令
- web - 谷歌索引错误的网页