[英]Fetch data from another dataframe
我之前问过一个问题,但由于最初的问题被认为是重复的,所以它被关闭了。
但我正在尝试与该线程以及重复线程不同的东西。
所以请不要关闭这个线程。 谢谢。
我需要根据来自另一个数据帧的数据替换我的列。 必须从其他数据框中搜索相应的“名称”,并在 df1 中包含“change_name”
数据帧 1:
ID name
1 cat
2 jack
3 snake
4 monkey
数据帧 2:
name change_name
cat meow
jack oooo
snake ssss
monkey
note money
pencil pen
预期输出:
ID name
1 cat meow
2 jack oooo
3 snake ssss
4 monkey nan
5 note money
6 pencil pen
我必须这样做:
def map_name(name):
elif name == 'cat':
return 'meow'
elif name == 'jack':
return 'oooo'
elif name == 'snake':
return 'ssss'
elif name == 'monkey ':
return None
else
return name
df1['name'] = df1['name'].apply(map_name)
由于列表很小,我在这里进行了硬编码,但列表可能会增长。 有人可以告诉如何使用数据框来执行相同的功能吗? 谢谢。
一个简单的合并就可以做到。
然后因为你想要df2
中不在df1
连接它们。
pd.concat([df1.merge(df2),df2[~df2['name'].isin(df1['name'])]]
结果:
In [23]: pd.concat([df1.merge(df2),df2[~df2['name'].isin(df1['name'])]])
Out[23]:
ID name change_name
0 1.0 cat meow
1 2.0 jack oooo
2 3.0 snake ssss
3 4.0 monkey None
4 NaN note money
5 NaN pencil pen
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.