Я загрузил csv «Набор данных тела» от https://figshare.com/articles/On_screen_movie_kill_counts_for_hundreds_of_films/889719 как блок данных к моему ноутбуку jupyter.
Моя задача - сделать линейную регрессию, чтобы прогнозировать рейтинг MPAA. Я слышал, что мой вектор данных X должен содержать столбцы: Body_Count, IsAction, IsThriller и т. Д.
К сожалению, я понятия не имею, как я могу получить эти статистические данные из моего набора данных, поскольку каждый жанр фильма помечен как «триллер | действие | драма».
Есть ли у вас идеи, как это можно сделать?Преобразование данных в пандах в другой
0
A
ответ
1
Вы можете использовать
genres = df.Genre.str.split('|', expand=True)
создавать новые столбцы для различных жанровых типов. Затем объединить это с вашими данными и использовать pd.get_dummies()
с .sum()
:
df = pd.concat([df.drop('Genre', axis=1), genres], axis=1)
df = df.set_index(['Film', 'Year', 'Body_Count', 'MPAA_Rating', 'Director', 'Length_Minutes', 'IMDB_Rating']).stack().reset_index(-1, drop=True)
df.columns = ['Genre']
df = pd.get_dummies(df).groupby(level=['Film', 'Body_Count']).sum()
df.head()
Fantasy ... Horror Music Musical \
Film Body_Count ...
24 Hour Party People 7 0.0 ... 0.0 1.0 0.0
28 Days Later 53 0.0 ... 1.0 0.0 0.0
28 Weeks Later 212 0.0 ... 1.0 0.0 0.0
30 Days of Night 67 0.0 ... 1.0 0.0 0.0
300 600 1.0 ... 0.0 0.0 0.0
Mystery Romance Sci-Fi Sport Thriller \
Film Body_Count
24 Hour Party People 7 0.0 0.0 0.0 0.0 0.0
28 Days Later 53 0.0 0.0 1.0 0.0 1.0
28 Weeks Later 212 0.0 0.0 1.0 0.0 1.0
30 Days of Night 67 0.0 0.0 0.0 0.0 1.0
300 600 0.0 0.0 0.0 0.0 0.0
War Western
Film Body_Count
24 Hour Party People 7 0.0 0.0
28 Days Later 53 0.0 0.0
28 Weeks Later 212 0.0 0.0
30 Days of Night 67 0.0 0.0
300 600 1.0 0.0
Чтобы удалить Film
и Body_Count
из index
, используйте
df = df.reset_index()
0
Заканчивать pandas.get_dummies
df = pd.DataFrame({'genre': ['action', 'thriller', 'drama'], 'kills':[50,100,150]})
print(df)
dummies = pd.get_dummies(df['genre'])
df = pd.concat([df,dummies], axis=1)
df = df.drop('genre',1)
print(df)
## -- End pasted text --
genre kills
0 action 50
1 thriller 100
2 drama 150
kills action drama thriller
0 50 1.0 0.0 0.0
1 100 0.0 0.0 1.0
2 150 0.0 1.0 0.0
Смежные вопросы
- 1. Условное преобразование на пандах
- 2. Преобразование категориальных данных в различные столбцы для построения в пандах
- 3. преобразование словаря в колонку dataframe в пандах
- 4. слияние кадров данных в пандах
- 5. Спаривания данных в Питоне пандах
- 6. Преобразование выбранного столбца данных в другой класс
- 7. Преобразование данных из одного класса в другой
- 8. Преобразование данных из одного формата в другой
- 9. Повышение эффективности проверки данных в пандах
- 10. недостающего булевы строк в пандах
- 11. Преобразование года и дня года в индекс datetime в пандах
- 12. Преобразование нескольких столбцов в категории в пандах. подать заявление?
- 13. Преобразование индекса даты и времени в пандах для разделения столбцов
- 14. Неравенство объединяется в Пандах?
- 15. красящие клетки в пандах
- 16. Регулировка ежемесячных данных временных рядов в пандах
- 17. Как изменить форму данных в пандах?
- 18. Как обновить существующий фрейм данных в пандах?
- 19. Группировка данных по данным столбцов в пандах
- 20. назначить хэш ряд категориальных данных в пандах
- 21. Как создать многоуровневую карту данных в пандах?
- 22. Как создать представление данных в пандах?
- 23. Сортировка в пандах для больших наборов данных
- 24. группировка и суммирование мультииндекса данных в пандах
- 25. Конкретные две фреймы данных в пандах
- 26. Нарезка и компоновка данных в пандах
- 27. Как создать факториальный фрейм данных в пандах?
- 28. Объединить строки двух данных в пандах
- 29. совокупный один уровень сгруппированных данных в пандах
- 30. Соответствующие кортежи в пандах и обработка данных
Спасибо! Еще одна вещь, которую мне нужно сделать, - сделать данные из подсчета и жанров тела в матрицу, поэтому я могу выполнить некоторые задачи регрессии. Но подсчет тела кажется индексом. Вы знаете, как я могу справиться с этим? – Kuba
Используйте .reset_index() для результата. – Stefan
См. Обновление с помощью команды. – Stefan