使用pandas在Excel Writer中设置单元格格式

1 投票
1 回答
6636 浏览
提问于 2025-04-18 11:36

我正在使用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

撰写回答