import pandas as pd
data = {
'автор': ['Пушкин', 'Лермонтов', 'Гоголь', 'Тургенев', 'Достоевский', 'Толстой', 'Чехов', 'Гоголь', 'Пушкин', 'Тургенев', 'Пушкин', 'Достоевский'],
'произведение': ['Евгений Онегин', 'Герой нашего времени', 'Мёртвые души', 'Отцы и дети', 'Преступление и наказание', 'Война и мир', 'Вишнёвый сад', 'Шинель', 'Капитанская дочка', 'Записки охотника', 'Борис Годунов', 'Идиот'],
'год': [1833, 1840, 1842, 1862, 1866, 1869, 1904, 1842, 1836, 1852, 1831, 1869],
'жанр': ['роман', 'роман', 'поэма', 'роман', 'роман', 'роман', 'пьеса', 'повесть', 'роман', 'рассказ', 'драма', 'роман'],
'объём_слов': [55000, 48000, 62000, 51000, 211000, 580000, 28000, 18000, 37000, 45000, 28000, 208000],
'количество_глав': [8, 5, 11, 28, 6, 4, 4, 2, 14, 25, 23, 4],
'рейтинг': [9.2, 8.9, 9.0, 8.7, 9.5, 9.8, 8.4, 8.6, 8.8, 8.3, 8.7, 9.0]
}
literature = pd.DataFrame(data)
print(literature)
print("\nЗадание 1.1")
print(literature.shape)
print(literature.columns.tolist())
print(literature.dtypes)
print(literature.head(3))
literature.info()
print(literature.describe())
print("\nЗадание 1.2")
print(literature['произведение'])
print(literature[['автор', 'произведение', 'рейтинг']])
literature.insert(5, 'число_страниц', literature['объём_слов'] // 300)
print(literature)
print(literature.iloc[2:5, 0:3])
print("\nЗадание 1.3")
print(literature[literature['год'] > 1850])
print(literature[(literature['жанр'] == 'роман') & (literature['объём_слов'] > 50000)])
print(literature[(literature['автор'] == 'Достоевский') | (literature['автор'] == 'Толстой')])
print(literature[literature['жанр'] != 'роман'][['автор', 'произведение', 'жанр']])
print(literature[(literature['рейтинг'] > 9.0) & (literature['объём_слов'] < 100000)])
print("\nЗадание 1.4")
literature.to_csv('literature.csv', index=False, encoding='utf-8')
literature_from_csv = pd.read_csv('literature.csv', encoding='utf-8')
literature_from_csv = literature_from_csv.drop(columns=['число_страниц', 'объём_слов', 'количество_глав'])
literature_from_csv.to_excel('literature_short.xlsx', index=False)