如何编写CSV文件,以便csv.DictReader()将其作为字符串/ int读取?

时间:2017-07-07 15:33:21

标签: python python-2.7 csv pandas export-to-csv

我使用pandas.DataFrame.to_csv()将DataFrame写入CSV文件。在此文件中,其中一列代表"年"。问题是,当使用csv.DictReader()加载CSV文件时,此列显然被读取为浮点数,因此.0被添加到其值!以下是确切的阅读线:

csvfile = csv.DictReader(of, delimiter="|")

我仔细检查了保存的CSV文件,根本没有小数点!

如何正确编写CSV文件,以便csv.DictReader()将某些列作为字符串或至少作为整数读取?

注意:我无法控制csv.DictReader()的调用方式。

1 个答案:

答案 0 :(得分:0)

首先,使用以下内容检查Year列的类型:

df['Year'].dtype

如果类型为float64,则应将其转换为整数:

df['Year'] = df['Year'].astype(int)

除非该行中有空单元格,否则您需要先填充它们(因为整数列中不能有NaN):

df['Year'].fillna(1234)

或者,使用float_format方法的参数to_csv()