首页 > 解决方案 > 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

标签: pythonpandas

解决方案


推荐阅读