python中遍历excel遇到问题

用的pandas标准库,遍历xlsx文件时,“NA”字符串似乎识别不出来?小写的“na”都可以,这是什么原因,怎么解决呀
下面是代码和部分excel表

img

img

pandas 会将NA解释为NaN,你可以添加参数避免这种情况

pd.read_excel("1.xlsx", keep_default_na=False)

data = pd.read_excel('./demo.xlsx', keep_default_na= False)

keep_default_na:决定是否保留na_values默认的缺失值表示方式,

  • 当参数为True时pandas会将文件中所有与默认的缺失值表达形式一致的字符串作为空值(nan)处理,这时如果na_values被传入其他参数那这个传入的参数所代表的值也按缺失值处理。
  • 当参数取值为False时,pandas会将na_values的默认值关闭,如果na_values没有被赋值,那么源文件中出现什么值,DataFrame中就是什么值。

由于 NA 的实际值是未知的,因此将NA转换为布尔值会引发错误。这样在 if 条件中无法直接做逻辑判断,可以使用 pd.isna(pd.NA) 来判断。

data = pd.read_excel('./demo.xlsx', keep_default_na= False)

代码参考自下面实例:

设置keep_default_na参数解决问题。

这是NA使用 Pandas 读取 CSV 文件时保持字符串值的示例。

data.csv:

country_name,country_code
Mexico,MX
Namibia,NA
read_data.py:

import pandas as pd
data = pd.read_csv("data.csv", keep_default_na=False)
print(data.describe())
print(data)
输出:

       country_name country_code
count             2            2
unique            2            2
top         Namibia           MX
freq              1            1

  country_name country_code
0       Mexico           MX
1      Namibia           NA

你的NA和na是咋生成的啊。。。。