大熊猫重新定义是无法忽略'NA'

时间:2017-02-02 11:55:34

标签: python excel python-3.x pandas isnull

作为数据分析练习的一部分,我正在将excel表读入pandas数据帧。

df = pd.ExcelFile('file.xlsx').parse(0)
nullcounts = df.isnull().sum().to_frame('null_records')

为我的数据帧中的每个系列生成一个带有空计数的漂亮帧。但如果字符串“NA”出现在一行数据中,我不希望isnull操作返回True

有没有一种简单的方法可以在不对特定列/数据帧进行硬编码的情况下执行此操作?

编辑:我的源数据中的NA似乎在被读入pandas时被忽略,因为当我加载数据并进行可视比较时,我看到NaN excel中有NA

1 个答案:

答案 0 :(得分:3)

如果可以使用read_excel,请使用参数NaNkeep_default_na定义将哪些值转换为na_values

df = pd.read_excel('file.xlsx')
print (df)
     a    b
0  NaN  NaN
1  3.0  6.0

nullcounts = df.isnull().sum().to_frame('null_records')
print (nullcounts)
   null_records
a             1
b             1

df = pd.read_excel('file.xlsx',keep_default_na=False,na_values=['NaN'])
print (df)
    a    b
0  NA  NaN
1   3  6.0

nullcounts = df.isnull().sum().to_frame('null_records')
print (nullcounts)
   null_records
a             0
b             1