Pandas read_csv 与 'keep_default_na=False' 导致值的数据类型发生变化。如何预防这种情况?

问题描述 投票:0回答:1

我正在尝试读取一个包含“NA”值作为数据的 csv 文件。当我使用“keep_default_na = false”选项保留 NA 值时,它会影响具有空行的其他列。数据:

 colA  colB  colC             
'abc' ,    ,  NA
'ljk' , 10 ,  'Paris' 
'xyz' , 25 ,  NA

在这里,我想将 NA 值保留在“colC”列中。我正在这样阅读 csv。

DF = pandas.read_csv(csv, keep_default_na=False)

现在我可以看到 DF 中存在 NA 值,但第二列“colB”中的值以字符串(“10”,“25”)形式出现,而不是数字。

如果包含数值的列中有空行,就会发生这种情况。

如何应用“keep_default_na= False”并仍然读取同一 dType 中的其他值?

python pandas dataframe read-csv
1个回答
0
投票

如果您确实有

'price'
列,请执行以下操作:

import pandas as pd

df = pd.read_csv(csv, keep_default_na=False)
df['price'] = pd.to_numeric(df['price'], errors='coerce')

errors='coerce'
将确保 NA 字符串值转换为 NaN 以进行数字处理。如果您不想要 NaN,而是将它们保留为 0 或其他值,则可以使用
fillna()
填充这些 NaN。

© www.soinside.com 2019 - 2024. All rights reserved.