Python Pandas : how to specify data types when reading an Excel file?

标签 python pandas dataframe

我正在使用 pandas.read_excel() 函数将 excel 文件导入 pandas 数据帧。

其中一列是表格的主键:全是数字,但以文本形式存储(Excel 单元格左上角的绿色小三角形证实了这一点)。

但是,当我将文件导入 pandas 数据框时,该列会作为 float 导入。这意味着,例如,“0614”变为 614。

有没有办法在导入列时指定数据类型?我知道在导入 CSV 文件时这是可能的,但在 read_excel() 的语法中找不到任何内容。

我能想到的唯一解决方案是在 Excel 中的文本开头添加一个任意字母(将“0614”转换为“A0614”),以确保将列作为文本导入,然后将python中的'A',所以我可以将它与我从SQL导入的其他表相匹配。

最佳答案

您只需指定转换器。我创建了以下结构的 excel 电子表格:

names   ages
bob     05
tom     4
suzy    3

“年龄”列被格式化为字符串。加载:

import pandas as pd

df = pd.read_excel('Book1.xlsx',sheetname='Sheet1',header=0,converters={'names':str,'ages':str})
>>> df
       names ages
   0   bob   05
   1   tom   4
   2   suzy  3

关于Python Pandas : how to specify data types when reading an Excel file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32591466/

相关文章:

python - 将列添加到现有数据框中,但将所有数字输入为 NaN

python - 拆分数据框中的字符串

python - Pandas 数据框 : Create additional column based on date columns comparison

python - Pandas "TypeError: unsupported operand type(s) for +: ' Timedelta' 和 'float' "

python - twisted.internet.reactor.spawnProcess 引发 OSError(13, 'Permission denied')

python - 磁力计的校准没有给出预期的结果

python - 如何用另一个数据框中的行减去数据框中的所有行?

java - 将 5 个字节转换为整数

python - 更改 Python 类字典中的值时的 NoneType

python - 将列分解为列