在Python中,如何在. csv文件和DataFrame之间读取和写入实际的单词“None”(不是关键字)?

klsxnrf1  于 2023-06-19  发布在  Python
关注(0)|答案(1)|浏览(110)

我有一个.csv,它在字段中的值是实际的单词“None”。当我将其读入DataFrame时,df读取“None”作为关键字并插入。后来,当我将df重写为.csv时,所有“None”的地方都被替换为. csv中的空白(,,)。
testdata.csv:

Membership number,Last name,Date of birth,Status,Color
240200,,Wilson,None,Red
import pandas as pd

filename = "testdata.csv"
data_file = "testoutput.csv"

with open(filename, 'r', newline='', ):
    # Read data into a DataFrame
    user_df = pd.read_csv(filename)
    
user_df.to_csv(data_file, index=False)

testoutput.csv:

Membership number,Last name,Date of birth,Status,Color
240200,,Wilson,,Red

我希望testoutput.csv与testdata.csv相同。

js81xvg6

js81xvg61#

我已经删除了打开的无关文件,正如我所料,我无法复制该问题。这是一个演示输出等于输入的会话。
来源:

import pandas as pd

user_df = pd.read_csv('x.csv')
print(user_df)    
user_df.to_csv('x1.csv', index=False)

输出:

timr@Tims-NUC:~/src$ cat x.csv
Membership number,Last name,Date of birth,Status,Color
240200,,Wilson,None,Red
timr@Tims-NUC:~/src$ python x.py
   Membership number  Last name Date of birth Status Color
0             240200        NaN        Wilson   None   Red
timr@Tims-NUC:~/src$ cat x1.csv
Membership number,Last name,Date of birth,Status,Color
240200,,Wilson,None,Red

后续

这似乎与版本有关。read_csv函数确实包含一个na_values参数,该参数标识应解释为NaN的字符串列表,并且(至少在Python 2.0中)“None”在该列表中。
因此,两个解决方案是:将一个较短列表指定为na_values,或设置keep_default_na=False以停止所有NaN解释。

相关问题