【发布时间】:2020-02-19 23:41:59
【问题描述】:
我的问题与此one 有关。我有一个名为“test.csv”的文件,其中“NA”作为region 的值。我想把它读成“NA”,而不是“NaN”。但是,test.csv 中的其他列中存在缺失值,我想将其保留为“NaN”。我怎样才能做到这一点?
# test.csv looks like this:
这是我尝试过的:
import pandas as pd
# This reads NA as NaN
df = pd.read_csv(test.csv)
df
region date expenses
0 NaN 1/1/2019 53
1 EU 1/2/2019 NaN
# This reads NA as NA, but doesn't read missing expense as NaN
df = pd.read_csv('test.csv', keep_default_na=False, na_values='_')
df
region date expenses
0 NA 1/1/2019 53
1 EU 1/2/2019
# What I want:
region date expenses
0 NA 1/1/2019 53
1 EU 1/2/2019 NaN
添加参数keep_default_na=False 的问题是expenses 的第二个值没有被读入为NaN。因此,如果我尝试pd.isnull(df['value'][1]),则返回为False。
【问题讨论】:
-
在链接的帖子中,
null值用下划线表示,因此它们设置为na_values='_'。在您的情况下,缺少的数据似乎由空字符串表示,所以我会选择na_values=''(除了keep_default_na=False)如果这解决了您的问题,那么这显然是一个重复。