pandas读取Excel:不解析数字

9 投票
3 回答
23123 浏览
提问于 2025-04-18 11:43

我正在使用Python的pandas库和Excel来编辑一个xlsx文件。我在这两个程序之间来回切换。这个文件里有一些列的内容看起来像数字,比如:

enter image description here

如果我读取这个文件,我得到的是

pd.read_excel ('test.xlsx')
     A
0    1
1  100

还有

pd.read_excel ('test.xlsx').dtypes
A    int64
dtype: object

我想问的是:怎么才能把这些文本当作文本来读取呢?因为在读取后再转换回去是不行的,因为这样会丢失一些信息(比如,前面的零会消失)。

谢谢你的帮助。

3 个回答

4

如果你能把文件转换成CSV格式,使用dtype=str应该没问题。

pd.read_csv('test.csv', dtype=str)

来源: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html

19

你可以通过使用 'converters' 参数来解决这个已知问题(假设你知道列的名称):

>>> pd.read_excel('test.xlsx', converters={'A': str})
     A
0  001
1  100
>>> pd.read_excel('test.xlsx', converters={'A': str}).dtypes
A    object
dtype: object
6

根据这个问题,这是pandas的一个已知问题。

撰写回答