Добрый день !
Табличные данные
Python
Создать новый столбец height_group в таблице с пингвинами, который будет отвечать за показатель длины клюва пингвина. high - высокий(от 42), middle - средний(от 35 до 42), low - низкий(до 35).
Изобразить гистограмму по flipper_length_mm с оттенком height_group.
Дополнительное:
| Задание 44 |
| --- |
| В ячейке ниже представлен код генерирующий DataFrame, которая состоит всего из 1 столбца. Ваша задача перевести его в one hot вид. Сможете ли вы это сделать без get_dummies?
import random
lst = ['robot'] * 10
lst += ['human'] * 10
random.shuffle(lst)
data = pd.DataFrame({'whoAmI': lst})
data.head() |
Ответы
Ответ:
Установите библиотеки для Python (Win+R -> CMD):
1) pip install pandas
2) pip install matplotlib
Код на языке Python для задания с пингвинами:
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv('penguins.csv')
data['height_group'] = pd.cut(data['culmen_length_mm'],
bins=[0, 35, 42, float('inf')],
labels=['low', 'middle', 'high'],
right=False)
data.hist(column='flipper_length_mm', by='height_group', color='skyblue', alpha=0.8)
plt.suptitle('Гистограмма длины ласты пингвинов', fontsize=14)
plt.xlabel('Длина ласты (mm)')
plt.ylabel('Количество')
plt.tight_layout()
plt.show()
Код .csv файла penguins (создайте текстовый файл, измените формат на .csv и введите туда это):
species,culmen_length_mm,culmen_depth_mm,flipper_length_mm,body_mass_g
Adelie,39.1,18.7,181,3750
Adelie,39.5,17.4,186,3800
Adelie,40.3,18.0,195,3250
Chinstrap,50.4,15.3,200,4200
Chinstrap,51.3,16.8,193,3550
Gentoo,45.6,14.3,212,5200
Gentoo,46.0,14.8,215,5400
Gentoo,46.8,15.0,219,5500
Код на языке Python для доп. задания:
import pandas as pd
import random
lst = ['robot'] * 10
lst += ['human'] * 10
random.shuffle(lst)
data = pd.DataFrame({'whoAmI': lst})
unique_values = data['whoAmI'].unique()
for value in unique_values:
data[value] = (data['whoAmI'] == value).astype(int)
data.drop('whoAmI', axis=1, inplace=True)
print(data.head())