Python 在本教程中,如何引用2个数据帧并替换列
有两个数据帧: 需要使用“放置”参考表格将df中的“区域”替换为(或添加一列以指示)参考中的“代码”。 记住,这是一个示例,在真实文件中,有100000多个角色和更复杂的值。请帮忙Python 在本教程中,如何引用2个数据帧并替换列,python,pandas,Python,Pandas,有两个数据帧: 需要使用“放置”参考表格将df中的“区域”替换为(或添加一列以指示)参考中的“代码”。 记住,这是一个示例,在真实文件中,有100000多个角色和更复杂的值。请帮忙 df=pd.DataFrame({'Date': ['1/1/11','1/2/11','1/2/11','1/2/11','1/3/11','1/3/11','1/3/11','1/3/11','1/4/11','1/5/11','1/5/11','1/5/11'],\ 'Prod': ['Quad','Belle
df=pd.DataFrame({'Date': ['1/1/11','1/2/11','1/2/11','1/2/11','1/3/11','1/3/11','1/3/11','1/3/11','1/4/11','1/5/11','1/5/11','1/5/11'],\
'Prod': ['Quad','Bellen','Quad','Bellen','Sunshine','Carlota','Sunset','Sunshine','Sunset','Sunset','Sunshine','Carlota'], \
'Region': ['East','South','West','West','East','MidWest','South','South','MidWest','South','West','West']})
ref=pd.DataFrame({'Place': ['West','East','South','MidWest'],\
'Code':['W','E','S','MW']})
你需要地图
df['Region'] = df['Region'].map(ref.set_index('Place')['Code'])
Date Prod Region
0 1/1/11 Quad E
1 1/2/11 Bellen S
2 1/2/11 Quad W
3 1/2/11 Bellen W
4 1/3/11 Sunshine E
5 1/3/11 Carlota MW
6 1/3/11 Sunset S
7 1/3/11 Sunshine S
8 1/4/11 Sunset MW
9 1/5/11 Sunset S
10 1/5/11 Sunshine W
11 1/5/11 Carlota W
编辑:如果要保留ref中不存在的区域名称,请使用
df['Region'] = df['Region'].map(ref.set_index('Place')['Code']).combine_first(df['Region'])
编辑:@Wen是对的,你可以用替换代替地图
df['Region'].replace(ref.set_index('Place')['Code'])
你能编辑你的问题,让它更清楚你在问什么吗?嗨,我是这个网站的新手。我现在就编辑谢谢你。。如果“Region”中的一个值在ref表中没有引用(例如North),我可以添加吗。如何替换所有可引用的值,并将“North”保留为“Region”中的有效值?谢谢again@S.Gu也许你可以试着换一个。是的,当然可以