开始使用免费开始使用

自动加载并合并多个 Excel 工作表的数据

现在,您将通过实现一个 for 循环,自动从 Excel 文件 listings.xlsx 中的三个交易所工作表导入上市信息。您将完成以下步骤:

  1. 使用 pd.ExcelFile() 对象的 sheet_names 属性获取工作表名称。
  2. 创建一个空列表。
  3. 编写一个 for 循环,遍历这些工作表名称,将对应工作表中的数据读入一个变量。需要的话,添加一个标识列。每次迭代都将该变量的内容追加到列表中。
  4. 将列表中的所有 DataFrame 进行纵向合并。

和往常一样,如需帮助,请参考本章之前的练习或查阅 pandas 文档。pandas 已以 pd 导入。

本练习是课程的一部分

在 Python 中导入与管理金融数据

查看课程

练习说明

  • 使用文件 listings.xlsx 创建 pd.ExcelFile() 对象,并赋值给变量 xls
  • xls.sheet_names 属性中获取工作表名称,并赋值给 exchanges
  • 创建一个空列表,并赋值给变量 listings
  • 使用以 exchange 为迭代变量的 for 循环遍历 exchanges。在每次迭代中:
    • 使用 pd.read_excel(),以 xls 为数据源,exchange 作为 sheet_name 参数,'n/a' 作为 na_values 以处理缺失值。将结果赋值给 listing
    • listing 中创建名为 'Exchange' 的新列,取值为 exchange(迭代变量)。
    • 将得到的 listing DataFrame 追加到 listings 中。
  • 使用 pd.concat()listings 的内容合并,并赋值给 listing_data
  • 使用 .info() 查看 listing_data 的内容。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Create the pd.ExcelFile() object
xls = ____

# Extract the sheet names from xls
exchanges = ____.____

# Create an empty list: listings


# Import the data
for exchange in exchanges:
    listing = pd.____(____, sheet_name=____, na_values='n/a')
    listing['Exchange'] = ____
    listings.____(____)

# Concatenate the listings: listing_data
listing_data = pd.____(____)

# Inspect the results
listing_data.info()
编辑并运行代码