python熊猫设置NaN值失败

时间:2018-11-12 15:18:51

标签: python pandas

我正在尝试清理熊猫中的数据集,信息存储在csv文件中,并使用以下方式导入:

tester = pd.read_csv('date.csv')

每个列都包含一个“?”缺少值的地方。例如,有一个年龄列,其中包含9个问号(?)

我尝试将所有问号设置为NaN,我尝试过:

tester = pd.read_csv('date.csv', na_values=["?"])

tester['age'].replace("?", np.NaN)

tester.replace('?', np.NaN)


for col in tester :
    print tester[col].value_counts(dropna=False)

当我知道年龄为9(?s)时,仍然返回0。在这种情况下,我假设检查失败,因为该值从未被视为?。

我已经查看了笔记本中的csv文件,并且字符周围没有空格等。

有没有强迫它以便被识别?

样本数据: enter image description here

2 个答案:

答案 0 :(得分:0)

read_csv有一个na_values参数。参见here

df = pd.read_csv('date.csv', na_values='?')

答案 1 :(得分:0)

您非常靠近:

# IT looks like file is having spaces after comma, so use `sep`
tester = pd.read_csv('date.csv', sep=', ', engine='python')

tester['age'].replace('?', np.nan)

似乎某处的数据有问题,以便进行调试。

pd.read_csv('file', error_bad_lines=False)

tester = tester [~(tester == '?').any(axis=1)]

OR

 pd.read_csv('file', sep='delimiter', header=None)

OR

pd.read_csv('file',header=None,sep=', ')