我使用pandas.DataFrame.to_csv()
将DataFrame写入CSV文件。在此文件中,其中一列代表"年"。问题是,当使用csv.DictReader()
加载CSV文件时,此列显然被读取为浮点数,因此.0
被添加到其值!以下是确切的阅读线:
csvfile = csv.DictReader(of, delimiter="|")
我仔细检查了保存的CSV文件,根本没有小数点!
如何正确编写CSV文件,以便csv.DictReader()
将某些列作为字符串或至少作为整数读取?
注意:我无法控制csv.DictReader()
的调用方式。
答案 0 :(得分:0)
首先,使用以下内容检查Year
列的类型:
df['Year'].dtype
如果类型为float64
,则应将其转换为整数:
df['Year'] = df['Year'].astype(int)
除非该行中有空单元格,否则您需要先填充它们(因为整数列中不能有NaN
):
df['Year'].fillna(1234)
或者,使用float_format
方法的参数to_csv()
。