Reputation: 4651
I have an excel file composed of several sheets. I need to load them as separate dataframes individually. What would be a similar function as pd.read_csv("") for this kind of task?
P.S. due to the size I cannot copy and paste individual sheets in excel
Upvotes: 7
Views: 26507
Reputation: 11
import pandas
# setting sheet_name = None, reads all sheets into a dict
sheets = pandas.read_excel(filepath, sheet_name=None)
# i will be the keys in a dictionary object
# the values are the dataframes of each sheet
for i in sheets:
print(f"sheet[{i}]")
print(f"sheet[{i}].columns={sheets[i].columns}")
for index, row in sheets[i].iterrows():
print(f"index={index} row={row}")
Upvotes: 1
Reputation: 81594
Use pandas read_excel()
method that accepts a sheet_name
parameter:
import pandas as pd
df = pd.read_excel(excel_file_path, sheet_name="sheet_name")
Multiple data frames can be loaded by passing in a list. For a more in-depth explanation of how read_excel()
works see: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html
Upvotes: 11
Reputation: 3215
If you can't type out each sheet name and want to read whole worksheet try this:
dfname=pd.ExcelFile('C://full_path.xlsx')
print(dfname.sheet_names)
df=pd.read_excel('C://fullpath.xlsx')
for items in dfname.sheet_names[1:]:
dfnew=pd.read_excel(full_path,sheet_name=items)
df=pd.concat([df,dfnew])
The thing is that pd.read_excel() can read the very first sheet and rest are unread.So you can use this
Upvotes: 7
Reputation: 4651
exFile = ExcelFile(f) #load file f
data = ExcelFile.parse(exFile) #this creates a dataframe out of the first sheet in file
Upvotes: 0