我正在使用pandas.read_excel()
函数将一个excel文件导入到pandas数据框中。
其中一列是表的主键:全部是数字,但存储为文本( Excel单元格左上角的绿色小三角形证实了这一点)。
但是,当我将该文件导入到pandas数据帧中时,该列被导入为浮点型。这意味着,例如,'0614‘变成了614。
有没有办法在导入列时指定数据类型?我知道这在导入CSV文件时是可能的,但在read_excel()
的语法中找不到任何东西。
我能想到的唯一解决方案是在Excel中的文本开头添加一个任意字母(将'0614‘转换为'A0614'),以确保该列是作为文本导入的,然后在python中去掉'A’,这样我就可以将它与我从SQL导入的其他表进行匹配。
发布于 2015-09-16 01:06:28
您只需指定转换器即可。我创建了一个具有以下结构的excel电子表格:
names ages
bob 05
tom 4
suzy 3
其中"ages“列被格式化为字符串。要加载:
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
发布于 2017-07-23 04:33:43
如果您不知道dataframe中的列数和列名,那么这个方法会很方便:
column_list = []
df_column = pd.read_excel(file_name, 'Sheet1').columns
for i in df_column:
column_list.append(i)
converter = {col: str for col in column_list}
df_actual = pd.read_excel(file_name, converters=converter)
其中,column_list是列名的列表。
发布于 2021-01-29 19:44:21
如果您能够正确读取excel文件,并且仅显示整数值。您可以像这样指定。
df = pd.read_excel('my.xlsx',sheetname='Sheet1', engine="openpyxl", dtype=str)
这应该会将整数值更改为字符串并显示在dataframe中
https://stackoverflow.com/questions/32591466
复制相似问题