首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用to_csv()时保留列的数据类型

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

Stack Overflow用户
提问于 2019-08-24 17:07:51
回答 2查看 5.4K关注 0票数 1

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

代码语言:javascript
复制
>>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文件的同时,将列的数据类型也保存为更改后的数据类型,而不是原始数据类型。

EN

回答 2

Stack Overflow用户

发布于 2019-08-24 18:31:19

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

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

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

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

版本0.20.0中的新特性:支持Python解析器。enter link description here

票数 3
EN

Stack Overflow用户

发布于 2019-08-29 00:00:03

代码语言:javascript
复制
df.to_csv('answer.csv', index=False, index_label = True, encoding='utf-8')

您可以使用index_label = True

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57636540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档