用另一个数据帧的值替换一个数据帧中的列值

2023-11-26

我有两个数据框,第一个有 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 个唯一值。

第二个数据框包含所有这 50 个唯一值(50 行)以及与这些值关联的酒店:

Group             Hotel
tri23_1           Jamel
hsgç_T2           Frank
bbbj-1Y_jn        Luxy
mlkl_781          Grand Hotel
vchs_94           Vancouver

我的目标是替换列中的值Group第一个数据帧的相应列值Hotel第二个数据框的/或创建列Hotel与相应的值。当我试图通过像这样的分配来做到这一点时

df1.loc[(df1.Group=df2.Group), 'Hotel']=df2.Hotel

我有一个错误,数据帧的大小不相等,因此无法进行比较。


如果您将索引设置为另一个 df 上的“Group”列,那么您可以使用替换map在您原来的 df 'Group' 列上:

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用另一个数据帧的值替换一个数据帧中的列值 的相关文章

随机推荐