Технологические IPO по годам на всех биржах
Для каждой компании в словаре listings указан год IPO в диапазоне от 1972 до 2017. Поэтому в данном контексте столбец 'IPO Year' каждого листа следует рассматривать как категориальную переменную с чётко определённым порядком, несмотря на то что его тип данных — float64.
В этом упражнении вы объедините данные со всех трёх бирж и построите распределение годов IPO для компаний технологического сектора. Библиотеки pandas (как pd) и matplotlib.pyplot (как plt) уже импортированы, а словарь listings из предыдущего упражнения доступен в рабочем пространстве.
Это упражнение является частью курса
Импорт и управление финансовыми данными в Python
Инструкции к упражнению
- Используйте цикл
forс переменной-итераторомexchange, содержащей название каждой биржи.- На каждой итерации добавляйте DataFrame, соответствующий ключу
exchangeв словареlistings, в списокall_listings.
- На каждой итерации добавляйте DataFrame, соответствующий ключу
- После завершения цикла используйте
pd.concat(), чтобы объединить три DataFrame изall_listings, и сохраните результат в переменнуюlisting_data. - Отфильтруйте
listing_dataпо компаниям из сектора'Technology'и сохраните результат в переменнуюtech_companies. - Присвойте столбец
'IPO Year'изtech_companiesпеременнойipo_years. - Для этих данных используйте
.dropna(), чтобы удалить пропущенные значения, и.astype(), чтобы преобразовать их в типint. - Примените
.value_counts()кipo_years, отсортируйте годы в порядке возрастания и постройте столбчатую диаграмму с заголовком'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()