
Добрый день ! Табличные данные 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())





Для создания нового столбца `height_group` в таблице с пингвинами, отвечающего за показатель длины клюва пингвина, можно использовать метод `apply()` в сочетании с условными операторами.
Вот пример кода, который позволит создать новый столбец `height_group` на основе значения столбца `flipper_length_mm`:
```python
import pandas as pd
# создаем DataFrame с данными о пингвинах
data = pd.DataFrame({
'species': ['Adelie', 'Gentoo', 'Chinstrap'],
'flipper_length_mm': [39, 43, 38, 35, 42, 37, 45, 40, 34, 41]
})
# функция, которая будет определять группу по длине клюва
def get_height_group(flipper_length):
if flipper_length >= 42:
return 'high'
elif flipper_length >= 35:
return 'middle'
else:
return 'low'
# применяем функцию к столбцу flipper_length_mm и создаем новый столбец height_group
data['height_group'] = data['flipper_length_mm'].apply(get_height_group)
```
Теперь в таблице `data` появится новый столбец `height_group`, в котором будет указана группа по длине клюва пингвина.
Чтобы построить гистограмму по столбцу `flipper_length_mm` с оттенком `height_group`, можно использовать метод `plot()` с параметром `kind='bar'`:
```python
import matplotlib.pyplot as plt
# группируем данные по столбцу height_group и считаем количество значений в каждой группе
grouped_data = data.groupby('height_group').size()
# строим гистограмму с оттенком height_group
grouped_data.plot(kind='bar', color=['green', 'yellow', 'red'])
# задаем название оси x
plt.xlabel('Height Group')
# задаем название оси y
plt.ylabel('Count')
# отображаем график
plt.show()
```
Дополнительное задание 44:
Чтобы перевести столбец `whoAmI` из DataFrame `data` в one-hot вид без использования `get_dummies`, можно использовать метод `pd.get_dummies()` с параметром `columns` устанавливаемым в список с одним значением `'whoAmI'`:
```python
import pandas as pd
# создаем DataFrame с данными
data = pd.DataFrame({'whoAmI': ['robot', 'robot', 'human', 'human', 'robot', 'human']})
# переводим столбец whoAmI в one-hot вид
one_hot_data = pd.get_dummies(data, columns=['whoAmI'])
```
В результате будет создан новый DataFrame `one_hot_data`, в котором столбец `whoAmI` будет разделен на два столбца `whoAmI_robot` и `whoAmI_human`, содержащие значения 0 и 1 в зависимости от принадлежности к соответствующей группе.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili