pandas重新定义isnull以忽略“NA”

2024-09-24 02:27:15 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

有没有一种简单的方法可以在不硬编码特定列/数据帧的规则的情况下做到这一点?在

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


Tags: to数据pandasdfparsexlsxexcelframe
1条回答
网友
1楼 · 发布于 2024-09-24 02:27:15

如果可以使用^{},请使用参数keep_default_nana_values定义将哪些值转换为NaN

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

相关问题 更多 >