Pandas Dataframe: заменить значения в кадре данных значениями из соответствующего вектора столбца другого кадра данных - PullRequest
0 голосов
/ 11 июня 2018

У меня есть два фрейма данных

DF_1:

Item number   Price   Location
33              $4     Boston
29              $2     NYC

DF_2:

Item number    29    33
Property 1     2.4   4.2
Property 2     5.2   1.9
Property 3     8.9   3.8

Я хочу заменить номер элемента в DF_1 на 3 соответствующих свойствадля него из DF_2, так что новый DF выглядит так:

New_DF:

Property 1   Property 2    Property 3   Price   Location
4.2           1.9          3.8          $4      Boston
2.4           5.2          8.9          $2      NYC

Я потратил много часов, пытаясь это сделать, а также тщательно просмотрел StackOverFlow, но не смогне могу найти ничего подобного.Пожалуйста помоги.

1 Ответ

0 голосов
/ 11 июня 2018

Одним из способов является транспонирование и слияние.Единственная сложность заключается в том, что вам нужно убедиться, что столбец / индекс слияния имеют одинаковый тип.Здесь мы явно приведем индекс транспонированного кадра данных к int.

df2_t = df2.set_index('Item Number').T
df2_t.index = df2_t.index.astype(int)

res = df1.merge(df2_t, left_on='Item Number', right_index=True)

print(res)

   Item Number Price Location  Property1  Property2  Property3
0           33    $4   Boston        4.2        1.9        3.8
1           29    $2      NYC        2.4        5.2        8.9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...