Python 3熊猫写入CSV格式列作为字符串

问题描述:

在处理奇数格式的Excel数据和以字符串格式写入CSV时遇到问题。在我的示例数据中,我导入的excel表有一列('Item_Number'),单元格中的奇数数据如下:=“0001”,=“00201”,2002AA,1003B。Python 3熊猫写入CSV格式列作为字符串

当我尝试输出到csv时,结果如下所示:1,201,2002AA,1003B。 当我尝试输出到excel时,结果是正确的:0001,00201,2002AA,1003B。

所有的dtypes都是对象。我是否在我的.to_csv()命令中缺少一个参数?

df = pd.read_excel(filename,sheetname='Sheet1', converters= {'Item_Number':str}) 
df.to_csv('Test_csv.csv') 
df.to_excel('Test_excel.xlsx') 

试图替换“=”的不同迭代和“”“,但没有反应。

df.Item_Number.str.replace('=','') 

目前使用Excel输出但好奇,如果有一种方法以保留字符串以CSV格式。谢谢:)

+2

对我来说它是完美的。你如何测试你的文件?通过'df = pd.read_csv('Test_csv.csv')'或通过文本编辑器? – jezrael

+0

我在Excel中打开它作为csv。将再次测试。 –

+0

作为csv在excel中打开。 试过: df = pd.Series([=“0001”,=“00201”,2002AA,1003B])。astype(str) 但该格式不会运行。它看起来像read.excel()函数可以从Excel电子表格中解释=“0001”并正确导出,但不能导出到csv。要清楚,=“0001”在单元格中。 –

用Python 3打开一个excel电子表格熊猫的数据看起来像=“0001”将正确地转到数据框,CSV会将它重新变回“1”保持CSV格式的显然是一个已知的问题(从我上面的评论)。为了保持格式我必须添加=”“回到这样的数据:

df['Item_Number'] = '="' + df['Item_Number'] + '"' 

不知道是否有一个更清洁的版本,将有一个Excel打开CSV文件显示0001不带引号和等号。