微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有两个数据帧,第一个有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

列组具有不同的值,有时会重复,但通常约有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上的“组”列,则可以使用原始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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐