开始使用免费开始使用

所有交易所的科技公司 IPO(按年份)

listings 字典中的每家公司都有一个介于 1972 到 2017 之间的 IPO 年份。因此,在本题语境下,即使其 dtypefloat64,也可以将各表的 'IPO Year' 列视为具有明确定义顺序的分类型变量。

接下来,您将合并来自三个交易所的数据,并绘制科技行业公司 IPO 年份的分布图。已为您导入 pandaspdmatplotlib.pyplotplt,且上一个练习得到的 listings 字典已在您的工作区中。

本练习是课程的一部分

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

查看课程

练习说明

  • 使用一个以 exchange 为迭代变量的 for 循环,exchange 包含每个交易所的名称。
    • 在每次迭代中,将 listings 中以键 exchange 对应的 DataFrame 追加到 all_listings
  • 循环结束后,使用 pd.concat()all_listings 中的三个 DataFrame 合并,并将结果赋给 listing_data
  • 过滤 listing_data 中行业为 'Technology' 的公司,并将结果赋给 tech_companies
  • tech_companies'IPO Year' 列赋给 ipo years
  • 对该数据使用 .dropna() 删除缺失值,并用 .astype() 转换为 int
  • ipo_years 应用 .value_counts(),将年份按升序排序,并创建标题为 'Tech IPOs by Year' 的条形图。
  • xticks 旋转 45 度并显示结果。

交互式实操练习

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

# Create lists
exchanges = ['amex', 'nasdaq', 'nyse']
all_listings = []

# Use for loop to create listing_data
for exchange in exchanges:
    all_listings.____(____[____])
    
# Combine DataFrames
listing_data = pd.____(____)

# Select tech companies
tech_companies = listing_data[____.____ == 'Technology']

# Create ipo_years
ipo_years = ____[____]

# Drop missing values and convert to int
ipo_years = ipo_years.____().____(int)

# Count values, sort ascending by year, and create a bar plot
ipo_years.____().plot(kind=____, ____='Tech IPOs by Year')

# Rotate xticks and show result
plt.xticks(____=____)

# Show the plot
plt.show()
编辑并运行代码