防止熊猫将“ NA”读为NaN

krn*_*ntz 6 python pandas

我正在读取的.csv文件包含值为“ NA”的单元格。熊猫会自动将其转换为NaN,这是我不想要的。我知道该keep_default_na=False参数,但这会将列的dtype更改为object这意味着pd.get_dummies无法正常工作。

有什么方法可以防止熊猫在不更改dtype的情况下将“ NA”读取为NaN吗?

piR*_*red 9

keep_default_na=False 为我工作

from io import StringIO
import pandas as pd

txt = """col1,col2
a,b
NA,US"""

print(pd.read_csv(StringIO(txt), keep_default_na=False))

  col1 col2
0    a    b
1   NA   US
Run Code Online (Sandbox Code Playgroud)

没有它

print(pd.read_csv(StringIO(txt)))

  col1 col2
0    a    b
1  NaN   US
Run Code Online (Sandbox Code Playgroud)

  • 此外,您应该指定 'na_values' 如果您有一些必须被解释为 null 的空值。你可以这样做: na_values=['NULL','null', 'nan','NaN'] (5认同)

小智 0

您可以尝试先将列转换为 str:

for index, row in df.iterrows():
    na_column = str(row['your_row'])
    if na_column != 'nan':
        # do something on column
Run Code Online (Sandbox Code Playgroud)