Индексирование и сопоставление строк между двумя различными фреймами данных с использованием Pandas в Python - PullRequest
0 голосов
/ 27 декабря 2018

первый вопрос здесь, поэтому, пожалуйста, дайте мне знать, если мне нужно уточнить что-то еще.По сути, у меня есть два кадра данных, и мне нужно индексировать / сопоставлять (в основном vLookUp в Excel), но я не могу заставить его работать на всю жизнь.

У меня есть два кадра данных.

df_1 = pd.DataFrame([['55555', '975 8th Avenue', ""],
                 ['44444', '900 Market St', ""],
                 ['54444', '975 7th Avenue', ""],
                 ['44445', '901 Market St', ""],
                 ['33333', '975 4th Avenue', ""],
                 ['35555', '975 8th Avenue', ""]], columns=['storezipCode', 'streetAddress', 'storeLoc'])

и

df_2 = pd.DataFrame([['New York', '53333'],
                 ['New York', '54444'],
                 ['New York', '55555'],
                 ['San Francisco', '44443'],
                 ['San Francisco', '44444'],
                 ['San Francisco', '44445'],
                 ['Chicago', '33333'],
                 ['Chicago', '34444'],
                 ['Chicago', '35555']], columns=['storeLoc', 'storezipCode'])

То, чего я хочу добиться, - это извлечь «storeLoc» из df_2 и сопоставить его с «storezipCode» в df_1 и df_2.

На самом деле, два кадра данных практически не равны с точки зрения строк / столбцов, поэтому я думаю, что это доставляет мне немало головной боли.Кто-нибудь знает простое решение для этого?В Excel это было бы просто, поэтому я чувствую, что просто что-то упускаю.

1 Ответ

0 голосов
/ 27 декабря 2018

Попробуйте map и set_index:

df_1['storeLoc'] = df_1.storezipCode.map(df_2.set_index('storezipCode')['storeLoc'])
print(df_1)

Вывод:

  storezipCode   streetAddress       storeLoc
0        55555  975 8th Avenue       New York
1        44444   900 Market St  San Francisco
2        54444  975 7th Avenue       New York
3        44445   901 Market St  San Francisco
4        33333  975 4th Avenue        Chicago
5        35555  975 8th Avenue        Chicago
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...