pandas 用NaN或0替换字符串

aydmsdu9  于 2022-12-02  发布在  其他
关注(0)|答案(2)|浏览(155)

我有一个正在清理的数据文件,源代码使用“--”来指示缺少的数据。我最终需要使此数据字段为整型或浮点型。但我不确定如何删除字符串。
在导入csv文件之前,我在type_dict语句中指定了类型。我的8个变量中有6个正确地作为整数或浮点数输入。当然,仍然是对象的两个变量是我需要修复的。
我已经尝试使用df = df.var.str.replace('--','')我已经尝试使用df.var.fillna(df.var.mode().values[0],inplace=True)(我想知道是否需要将值'0'更改为'--')
我的假设是,如果我能以某种方式清空这些单元格,我就可以将变量定义为int/float。
我肯定我错过了一些很简单的东西,我离开了又回来了,但我就是不明白。

kcrjzv8t

kcrjzv8t1#

在进入Pandas之前,尝试类似这样的清洁输入

import sys
from io import StringIO
import pandas as pd

with open('data.txt', 'r') as file:
    data = StringIO(file.read().replace('--', '0'))

df = pd.read_csv(data)
axzmvihb

axzmvihb2#

好吧,我们想出了两个办法:
解决方案1:df = df.replace(r '^--$',np.nan,正则表达式=True)
解决方案2(#1简化版本):df = df.替换(r '--',np.nan)
当我将csv导出到电子表格时,这两个文件都给出了预期的空单元格输出。然后当我重新导入中间文件时,我得到了浮点数而不是预期的字符串。

相关问题