我有两个数据框,第一个有1000行,看起来像:
Date Group Family Bonus 2011-06-09 tri23_1 Laavin 456 2011-07-09 hsgç_T2 Grendy 679 2011-09-10 bbbj-1Y_jn Fantol 431 2011-11-02 hsgç_T2 Gondow 569
该列Group具有不同的值,有时会重复,但通常大约有50个唯一值。
Group
第二个数据框包含所有这50个唯一值(50行)以及与这些值关联的酒店:
Group Hotel tri23_1 Jamel hsgç_T2 Frank bbbj-1Y_jn Luxy mlkl_781 Grand Hotel vchs_94 Vancouver
我的目标是用第二个数据帧的列的相应值替换Group第一个数据帧的列中的值,Hotel或者Hotel用相应的值创建该列。当我尝试通过像
Hotel
df1.loc[(df1.Group=df2.Group), 'Hotel']=df2.Hotel
我有一个错误,即数据帧的大小不相等,因此无法进行比较
如果将索引设置为另一个df上的“组”列,则可以map在原始df的“组”列上使用替换:
map
In [36]: df['Group'] = df['Group'].map(df1.set_index('Group')['Hotel']) df Out[36]: Date Group Family Bonus 0 2011-06-09 Jamel Laavin 456 1 2011-07-09 Frank Grendy 679 2 2011-09-10 Luxy Fantol 431 3 2011-11-02 Frank Gondow 569