如何引用2个数据帧并替换列

2024-04-19 20:32:33 发布

您现在位置:Python中文网/ 问答频道 /正文

有2个数据帧: 需要使用“Place”ref表将df中的“Region”替换为ref中的“Code”。 请注意,这是一个示例,在实际文件中,有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','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']})

Tags: refdataframedfcodeplaceregionpdwest
1条回答
网友
1楼 · 发布于 2024-04-19 20:32:33

你需要地图

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'])

编辑:@文是对的,可以用替换代替地图

df['Region'].replace(ref.set_index('Place')['Code'])

相关问题 更多 >