НачатьНачать бесплатно

Технологические IPO по годам на всех биржах

Для каждой компании в словаре listings указан год IPO в диапазоне от 1972 до 2017. Поэтому в данном контексте столбец 'IPO Year' каждого листа следует рассматривать как категориальную переменную с чётко определённым порядком, несмотря на то что его тип данных — float64.

В этом упражнении вы объедините данные со всех трёх бирж и построите распределение годов IPO для компаний технологического сектора. Библиотеки pandas (как pd) и matplotlib.pyplot (как plt) уже импортированы, а словарь listings из предыдущего упражнения доступен в рабочем пространстве.

Это упражнение является частью курса

Импорт и управление финансовыми данными в Python

Посмотреть курс

Инструкции к упражнению

  • Используйте цикл for с переменной-итератором exchange, содержащей название каждой биржи.
    • На каждой итерации добавляйте DataFrame, соответствующий ключу exchange в словаре listings, в список all_listings.
  • После завершения цикла используйте 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()
Редактировать и запускать код