在处理奇怪格式化的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中保留字符串格式。谢谢:))
答案 0 :(得分:0)
打开带有Python 3 Pandas的excel电子表格,其数据看起来像=“0001”,将正确地转到数据框。 CSV会将其变回“1”。保持相同格式的CSV显然是一个已知问题(从我上面的评论)。要保持格式化,我必须将=“”添加回数据,如下所示:
df['Item_Number'] = '="' + df['Item_Number'] + '"'
不确定是否有更干净的版本会使Excel打开的CSV文件显示0001而不带引号和等号。