У меня есть два кадра данных A и B, я добавляю столбец в кадр данных A и пытаюсь заполнить его в зависимости от значений трех столбцов в кадре данных B.
Это кадр данных B:
Clinton Trump State
0 151581.0 130614.0 Alabama
1 68429.0 91087.0 California
2 62435.0 89199.0 Arizona
3 22927.0 72846.0 Alaska
4 58669.0 33928.0 Arkansas
Это фрейм данных A:
State Education Percentage
0 Alabama NOHighSchoolPercent 0.85
1 Alabama PostgraduatePercent 0.55
2 Alabama BachelorsPercent 0.69
3 Arkansas NOHighSchoolPercent 0.80
4 California NOHighSchoolPercent 0.72
Я хочу добавить столбец «Majority» в A, который либо говорит «Трамп», либо «Клинтон» на основе количества голосов в фрейме данных BПервое условие состоит в том, что состояния должны совпадать, а второе условие проверяет, кто получил больше голосов.
Результирующий кадр данных A должен выглядеть примерно так:
State Education Percentage Majority
0 Alabama NOHighSchoolPercent 0.85 Clinton
1 Alabama PostgraduatePercent 0.55 Clinton
2 Alabama BachelorsPercent 0.69 Clinton
3 Arkansas NOHighSchoolPercent 0.80 Clinton
4 California NOHighSchoolPercent 0.72 Trump
Я знаю, какдобавить столбец и назначить условие, проблема в том, что условия находятся между 3 столбцами в отдельном кадре данных (B)
Я думал что-то вроде этого:
def get_result(votes_clinton, votes_trump):
if votes_clinton > votes_trump
return 'clinton'
else
return 'trump'
A['Majority'] = B['Clinton','Trump'].map(get_result)
Однако япо-прежнему необходимо учитывать, равны ли состояния, и это приводит к путанице в структуре кода
Примечание. Некоторые состояния могут отсутствовать в обоих кадрах данных