首页 > 解决方案 > 如何使用电子表格中的第一行作为 Dataframe 列名而不是 0 1 2...等?

问题描述

我希望我的数据框将第一行名称显示为我的数据框列名称,而不是从 0 等编号。我该怎么做?

我尝试使用 pandas 和 openpyxl 模块将我的 Excel 电子表格转换为数据框。

import pandas as pd
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows

wb = load_workbook(filename='Budget1.xlsx')
print(wb.sheetnames)
sheet_ranges=wb['May 2019']
print(sheet_ranges['A3'].value)

ws=wb['May 2019']
df=pd.DataFrame(ws.values)
print(df) # This displays my dataframe.

我希望我的数据框的列标题显示日期、描述和金额,而不是 0、1、2。

标签: pythonexcelpandasdataframe

解决方案


使用 pandas 读取数据数据框后,您可以分隔第一行,然后将其用作列名:

columnNames = df.iloc[0] 
df = df[1:] 
df.columns = columnNames

或者,您可以使用将第一行设置为列名的 pandas 直接读取:

excelDF = pd.ExcelFile('Budget1.xlsx')
df1 = pd.read_excel(excelDF, 'SheetNameThatYouWantTORead')
print(df1.columns)

推荐阅读