Присвоение выбранных значений столбца данного фрейма данных другому фрейму данных в Python - PullRequest
2 голосов
/ 17 марта 2019

Я хотел бы назначить выбранные значения столбца фрейма данных другому фрейму данных.

data = [['Math',87],['Geography',93],['Physics',72],['Geometry',75],['Astronomy',81],['English',94],['History',84]]
df = pd.DataFrame(data,columns=['Subjects','Grade'])
df

Subjects  Grade
Math         87
Geography    93
Physics      72
Geometry     75
Astronomy    81
English      94
History      84

У меня есть другой фрейм данных:

data2 = [['Astronomy'],['Geography'],['Geometry'],['History']]
df2 = pd.DataFrame(data2,columns=['Subjects_selected'])

df2

Subjects_selected
Astronomy
Geography
Geometry
History

Как я могу назначить оценкуЗначения столбца для df2 как новые элементы столбца автоматически?Я хочу получить:

Subjects_selected   Retrieved_Values
Astronomy                       81
Geography                       93
Geometry                        75
History                         84

Ответы [ 2 ]

2 голосов
/ 17 марта 2019

Используйте Series.map от Series, созданного DataFrame.set_index и выбирая столбец Grade:

df2['Retrieved_Values'] = df2['Subjects_selected'].map(df.set_index('Subjects')['Grade'])
print (df2)
  Subjects_selected  Retrieved_Values
0         Astronomy                81
1         Geography                93
2          Geometry                75
3           History                84

Другое решение с DataFrame.merge и переименованием столбцов:

d = {'Subjects':'Subjects_selected','Grade':'Retrieved_Values'}
df2 = df2.merge(df.rename(columns=d), how='left')

print (df2)
  Subjects_selected  Retrieved_Values
0         Astronomy                81
1         Geography                93
2          Geometry                75
3           History                84
1 голос
/ 17 марта 2019

Поскольку вы упомянули select, я буду использовать isin, то есть ' больше похоже на выбор '

df.loc[df.Subjects.isin(df2.Subjects_selected)]
Out[93]: 
    Subjects  Grade
1  Geography     93
3   Geometry     75
4  Astronomy     81
6    History     84
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...