希望是一个简单的请求。
我发现当我构建一个DataFrame并设置列数据类型然后将其导出到csv时,它会将数字字符串的数据类型转换为整数。
例如一个值可能是“0000”,而csv最终会得到值0.但是我需要它来保留字符串中的字符数并将csv保存为“0000”。
任何人都知道保留字符串而不是转换数据类型的方法吗?
导入后设置数据类型无法解决问题(在任何人告诉我我可以在导入之后/之后设置它),因为它会导致在将整数转换为字符串时必须配置前导0的问题在每次进口时,这都不是最佳的。
希望我忽视一些简单的事情。
(编辑) 哦,我的导出线只是一个简单的导出,这就是为什么我可能只是没有意识到需要提供的论点。
df.to_csv("Test.csv", index=False)
答案 0 :(得分:1)
假设df['your_column']
是您要保留的列,您可以使用read_csv()
中的dtype
参数:
df.read_csv('temp.csv', dtype={'your_column': str})
如果这不起作用,您确定您的列包含要开头的字符串吗?因为这是我看到的行为:
>>> df1 = pd.DataFrame({'a': ['0000', '0000', '0100',]})
>>> df1
a
0 0000
1 0000
2 0100
>>> df1.to_csv('temp.csv', index=False)
>>> df2.read_csv('temp.csv', dtype={'a': str})
>>> df2
a
0 0000
1 0000
2 0100
也许您的问题不在于导出或导入,而是在创建时。
df = pd.DataFrame({'a': 0000, 0000, 0100]})
这将使数据框的值为0,0,100
。如果您希望它们是字符串,则需要将它们创建为字符串。