Python 3 Pandas将CSV格式列写为字符串

时间:2016-12-16 14:48:15

标签: python-3.x csv pandas formatting

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

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

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

def Integer.even from:0
  Enumerator.new do |yielder, n: (from.even? ? from : from+1 )|
    loop { yielder.yield n; n += 2}
  end.lazy
end

p Integer.even(from: 3).take(10).to_a

尝试了替换“=”和“”“的不同迭代,但没有响应。

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

目前正在使用excel输出但很奇怪是否有办法在CSV中保留字符串格式。谢谢:))

1 个答案:

答案 0 :(得分:0)

打开带有Python 3 Pandas的excel电子表格,其数据看起来像=“0001”,将正确地转到数据框。 CSV会将其变回“1”。保持相同格式的CSV显然是一个已知问题(从我上面的评论)。要保持格式化,我必须将=“”添加回数据,如下所示:

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

不确定是否有更干净的版本会使Excel打开的CSV文件显示0001而不带引号和等号。