使用pandas在Excel Writer中设置单元格格式
我正在使用pandas库来用Python读取和写入Excel文件(xlsx文件,使用openpyxl)。我的数据中有一部分是看起来像数字的文本。例如,在原始的Excel文件中,我有一个单元格
123456789012345
在Python中导入时,这个单元格的内容显示得很好,作为文本处理。但是,如果我再把这个Excel文件写回去,输出的单元格格式变成了'常规',显示为
1.23e14
所以我想问的是:有没有办法在pandas中设置数字格式?我想把它设置为'@',也就是openpyxl.styles.NumberFormat.FORMAT_TEXT
。
可惜的是,pandas.ExcelWriter的文档并没有那么详细(也就是说,几乎没有相关内容)。
谢谢你的帮助。
1 个回答
4
我觉得在最坏的情况下,你可以直接操作单元格。我没有安装Excel,但也许你可以检查一下这样做是否有效。
In [67]: df=pd.DataFrame ([123456789012345])
In [68]: writer = pd.ExcelWriter ('e.xlsx', engine='openpyxl')
In [69]: df.to_excel (writer, 'sheet1')
In [70]: ws = writer.sheets['sheet1']
In [71]: ws['A1'].style.number_format.format_code='@'
In [72]: writer.save ()
In [73]: pd.read_excel ('e.xlsx')
Out[73]:
0
0 123456789012345