栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将列从一个数据框映射到另一数据框以创建新列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将列从一个数据框映射到另一数据框以创建新列

df.merge

out = (df1.merge(df2, left_on='store', right_on='store_pre')          .reindex(columns=['id', 'store', 'address', 'warehouse']))print(out)   id  store address warehouse0   1    100     xyz      Land1   2    200     qwe       Sea2   3    300     asd      Land3   4    400     zxc      Land4   5    500     bnm       Sea

pd.concat
+
df.sort_values

u = df1.sort_values('store')v = df2.sort_values('store_pre')[['warehouse']].reset_index(drop=1)out = pd.concat([u, v], 1)print(out)   id  store address warehouse0   1    100     xyz      Land1   2    200     qwe       Sea2   3    300     asd      Land3   4    400     zxc      Land4   5    500     bnm       Sea

假设您的数据框已经在上排序

store
,则第一次排序调用是多余的,在这种情况下,您可以删除它。


df.replace
/
df.map

s = df1.store.replace(df2.set_index('store_pre')['warehouse'])print(s) 0    Land1     Sea2    Land3    Land4     Seadf1['warehouse'] = sprint(df1)   id  store address warehouse0   1    100     xyz      Land1   2    200     qwe       Sea2   3    300     asd      Land3   4    400     zxc      Land4   5    500     bnm       Sea

或者,显式创建映射。如果您以后要使用它,它将起作用。

mapping = dict(df2[['store_pre', 'warehouse']].values)df1['warehouse'] = df1.store.map(mapping)print(df1)   id  store address warehouse0   1    100     xyz      Land1   2    200     qwe       Sea2   3    300     asd      Land3   4    400     zxc      Land4   5    500     bnm       Sea


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596341.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号