Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用电子表格中的第一行作为数据框列名,而不是0 1 2…等?_Python_Excel_Pandas_Dataframe - Fatal编程技术网

Python 如何使用电子表格中的第一行作为数据框列名,而不是0 1 2…等?

Python 如何使用电子表格中的第一行作为数据框列名,而不是0 1 2…等?,python,excel,pandas,dataframe,Python,Excel,Pandas,Dataframe,我希望我的dataframe将第一行名称显示为我的dataframe列名,而不是从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'

我希望我的dataframe将第一行名称显示为我的dataframe列名,而不是从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。

您可以将列重置为数据框的第一行:

df.columns = df.iloc[0, :]
df.drop(df.index[0], inplace=True)
df

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

columnNames = df.iloc[0] 
df = df[1:] 
df.columns = columnNames
excelDF = pd.ExcelFile('Budget1.xlsx')
df1 = pd.read_excel(excelDF, 'SheetNameThatYouWantTORead')
print(df1.columns)
或者,您可以使用将第一行设置为列名的熊猫直接读取:

columnNames = df.iloc[0] 
df = df[1:] 
df.columns = columnNames
excelDF = pd.ExcelFile('Budget1.xlsx')
df1 = pd.read_excel(excelDF, 'SheetNameThatYouWantTORead')
print(df1.columns)