如何防止Pandas在读取csv时删除“NA”字符串?

2024-05-14 08:04:48 发布

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

我使用pandas读取包含产品数据的CSV文件,其中一个数据框包含产品线代码“NA”,当我将数据输出到新文件时,线代码“NA”不再是数据框的一部分,它已被删除,现在是空白字段,我如何阻止这种情况发生

data = pd.read_csv('C:\\Users\\User\\Desktop\\' + filename, sep=',', quotechar='"', encoding='mbcs',
                   low_memory=False)

我想要的数据帧如下所示:

"Line Code"    "Product SKU"
AB              Product1
AB              Product2
AB              Product3 
NA              Product4
NA              Product5
NA              Product6
MV              Product7
MV              Product7
MV              Product7

Tags: 文件csv数据代码pandasdataab产品
1条回答
网友
1楼 · 发布于 2024-05-14 08:04:48

用^ {CD1>}读取数据文件,可能用^ {CD2>}指定要考虑为“真”的NANS:

的值集。
# custom admissible NaNs values, 'NA' is not in this list
na_values = ['', '#N/A', '#N/A N/A', '#NA', '-1.#IND',
'-1.#QNAN', '-NaN', '-nan', '1.#IND',
'1.#QNAN', 'N/A', 'NULL', 'NaN',
'n/a', 'nan', 'null'
]

data = pd.read_csv('C:\\Users\\User\\Desktop\\' + filename, 
                    sep=',', 
                    quotechar='"', 
                    encoding='mbcs', 
                    low_memory=False, 
                    na_values = na_values # specify custom NaN values
                    keep_default_na=False) # and use them

这里有一个可重现的例子,说明这里可能发生的事情:

# create dataframe with NA and write it to file
import pandas as pd
df = pd.DataFrame({'Line Code':['MV', 'RM', 'NA', 'AB'], 
                   'Product SKU':['Product1', 'Product2', 'Product3', 'Product4']})

df.to_csv("mydf.csv", index = False)

# read it in, in two different fashions
df_problematic = pd.read_csv("mydf.csv")
df_ok = pd.read_csv("mydf.csv", keep_default_na = False)

df_problematic中,“NA”值被解释为NaN,这不是您想要的(有关在pandas中读取csv文件的选项以及解释为NaN的默认符号列表的信息,请参阅the ^{} docs

相关问题 更多 >

    热门问题