Как преобразовать значение столбца в информационном кадре в значения столбцов другого информационного кадра - PullRequest
0 голосов
/ 04 мая 2018

Как добавить столбец "main_category" к orig_diff, который будет указывать, к какой основной категории относится подкатегория. Например, у orig_df со значением «Movie» должны быть «main_category» как «Развлечения» и «Математика» как «Образование».

import pandas as pd
import numpy as np

orig_df = pd.DataFrame({"sub_cat" : ["Movie", "Science", "Maths", "Music", "Songs", "Dance", "English", "Maths", "Songs"], "Student": ["Stud1", "Stud2", "Stud3", "Stud4", "Stud5", "Stud6", "Stud7", "Sud8", "Stud9"]})
sub_df = pd.DataFrame({"Education": [0,1,1,0,0,0,1], "Entertainment": [1,0,0,1,1,1,0]}, index=["Movie", "Science", "Maths", "Music", "Songs", "Dance", "English"])
print(orig_df)
print(sub_df)

1 Ответ

0 голосов
/ 04 мая 2018

Одним из способов является создание словаря из sub_df путем итерации строк.

Затем используйте словарь в качестве карты на orig_df['sub_cat']:

d = {idx: next(k for k in sub_df if row[k]==1)
     for idx, row in sub_df.iterrows()}

orig_df['main_category'] = orig_df['sub_cat'].map(d)

print(orig_df)

  Student  sub_cat  main_category
0   Stud1    Movie  Entertainment
1   Stud2  Science      Education
2   Stud3    Maths      Education
3   Stud4    Music  Entertainment
4   Stud5    Songs  Entertainment
5   Stud6    Dance  Entertainment
6   Stud7  English      Education
7    Sud8    Maths      Education
8   Stud9    Songs  Entertainment

Обратите внимание, это предполагает, что каждый sub_cat отображается только на одно из слов "Образование" или "Развлечения".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...