如何在使用to_csv()时保留列的数据类型

时间:2019-08-24 09:07:51

标签: python pandas export-to-csv data-analysis

我正在使用astype()将int数据类型更改为str的数据类型,并使用to_csv()将其保存到csv文件中。但是通过read_csv()读取相同的csv文件表示该数据类型仅为int。我不想在读取文件时使用dtype = str。 以下是以下信息:

>>df.info()
dtypes: int64(1), object(1)

>>df = df.astype(str)

>>df.info()
dtypes: object(2)

>>df.to_csv('answer.csv', index=False, encoding='utf-8')
>>df = pd.read_csv('answer.csv')

>>df.info()
dtypes: int64(1), object(1)

有什么方法可以在保存csv文件时,仅将列的数据类型保存为更改后的数据类型,而不是原始数据类型。

2 个答案:

答案 0 :(得分:1)

df.to_csv('answer.csv', index=False, index_label = True, encoding='utf-8')

您可以使用index_label = True

答案 1 :(得分:0)

如果唯一选择csv,则可以通过创建data_map csv文件来满足要求。

将数据帧导出到csv时,您可以创建另一个csv,用于存储列类型信息。

将csv导入到数据框时,您可以读取data_map csv并预先转换为字典。使用它可以以特定数据类型显式加载csv数据。 dtype参数可以提供这样的功能。

dtype:类型名称或列的字典->类型,默认为无 数据或列的数据类型。例如。 {'a':np.float64,'b':np.int32}(engine ='python'不支持)。将str或object与适当的na_values设置一起使用可保留而不解释dtype。

0.20.0版中的新功能:支持Python解析器。 enter link description here