Pandas Dataframe:使用来自不同数据帧的相应列向量的值替换数据帧中的值

时间:2018-06-11 18:49:03

标签: python pandas pandas-groupby

我有两个数据框

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中的项目编号替换为DF_2中的3个相应属性,以便新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 :(得分:1)

一种方法是转置和合并。唯一的复杂因素是您需要确保您的合并列/索引属于同一类型。在这里,我们将转置数据框的索引显式转换为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