使用以下代码从 Excel 中读取表格,丢弃列标题下的空行,并重命名索引:
Energy = pd.read_excel('assets/Energy Indicators.xls', header=16, usecols="C:F", index_col=0, nrows=227)
Energy = Energy.iloc[1:,:]
Energy.index.rename('Country',inplace=True)
对于如下所示的 Excel 表格:
Excel table showing header and col names
这成功返回了我需要的具有正确行和列的数据帧。但是,Energy.dtypes 将所有列显示为对象,并且我需要将包含国家/地区名称(我将其读为索引)的第一列设为 str 类型。我尝试了 Energy.index.astype(str) 但仍然将“object”作为索引类型。我将 dtype={0:str}
添加到 read_excel 调用中,但仍然将“object”作为索引类型。
a) 导致 read_excel 将我的索引返回为 str; 的正确方法是什么?或者 b) 将索引类型转换为 str?
最佳答案
您必须在 pd.read 函数中定义转换器:
Energy = pd.read_excel('assets/Energy Indicators.xls', header=16, usecols="C:F", index_col=0, nrows=227, converters={'my_column_name':str})
关于python - Pandas read_excel 返回对象类型的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68381967/