从多个工作表获取数据

使用 pandas 高效导入数据

Amany Mahfouz

Instructor

选择要加载的工作表

  • read_excel() 默认加载 Excel 文件中的第一个工作表
  • 使用 sheet_name 参数加载其他工作表
  • 可按名称和/或(从 0 开始的)位置指定工作表
  • 传入名称/编号列表可一次加载多个工作表
  • 传给 read_excel() 的参数将应用于所有读取的工作表
使用 pandas 高效导入数据

选择要加载的工作表

电子表格程序的截图,显示两个工作表的标签

使用 pandas 高效导入数据

加载选定工作表

# 通过位置索引获取第二个工作表
survey_data_sheet2 = pd.read_excel('fcc_survey.xlsx',
                                   sheet_name=1)

# 通过名称获取第二个工作表 survey_data_2017 = pd.read_excel('fcc_survey.xlsx', sheet_name='2017')
print(survey_data_sheet2.equals(survey_data_2017))
True
使用 pandas 高效导入数据

加载所有工作表

  • sheet_name=None 传给 read_excel() 可读取工作簿中的所有工作表
survey_responses = pd.read_excel("fcc_survey.xlsx", sheet_name=None)

print(type(survey_responses))
<class 'collections.OrderedDict'>
for key, value in survey_responses.items():
    print(key, type(value))
2016 <class 'pandas.core.frame.DataFrame'>
2017 <class 'pandas.core.frame.DataFrame'>
使用 pandas 高效导入数据

整合演示

# 创建空数据框以存放所有已加载的工作表
all_responses = pd.DataFrame()

# 遍历字典中的数据框 for sheet_name, frame in survey_responses.items(): # 添加一列以标注年份 frame["Year"] = sheet_name
# 将数据框追加到 all_responses all_responses = pd.concat([all_responses, frame])
# 查看数据中的年份 print(all_responses.Year.unique())
['2016' '2017']
使用 pandas 高效导入数据

开始练习!

使用 pandas 高效导入数据

Preparing Video For Download...