【发布时间】:2016-12-17 02:57:59
【问题描述】:
在处理格式奇怪的 Excel 数据和以字符串格式写入 CSV 时遇到问题。在我的示例数据中,我正在导入的 Excel 表有一列 ('Item_Number'),单元格中的奇数数据如下所示:="0001"、="00201"、2002AA、1003B。
当我尝试输出到 csv 时,结果如下所示:1、201、2002AA、1003B。 当我尝试输出到excel时,结果是正确的:0001、00201、2002AA、1003B。
所有的数据类型都是对象。我的 .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 中保留字符串格式。谢谢:)
【问题讨论】:
-
对我来说它很完美。你如何测试你的文件?通过
df = pd.read_csv('Test_csv.csv')还是通过文本编辑器? -
我在 excel 中以 csv 格式打开它。将再次测试。
-
在 excel 中以 csv 格式打开它。试过: df = pd.Series([="0001", ="00201", 2002AA, 1003B]).astype(str) 但该格式不会运行。看起来 read.excel() 函数可以从 excel 电子表格中解释 ="0001" 并正确导出,但不能正确导出到 csv。需要明确的是,=“0001”在单元格中。
-
进一步研究 - 这可能是一个 excel 问题,而不是 Python Pandas 问题:stackoverflow.com/questions/137359/excel-csv-number-cell-format
标签: python-3.x csv pandas formatting