Python 基于来自另一个数据帧的值之间的映射,从一个数据帧中变异多个列
我有两个数据帧:Python 基于来自另一个数据帧的值之间的映射,从一个数据帧中变异多个列,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧: df看起来像这样 id v1 v2 v3 v4 etc. 1 1 4 2 5 2 4 4 6 1 3 2 1 3 4 etc. id name 1 red 2 blue 3 grey 4 green 5 black 6 gold etc 而规则看起来是这样的
df
看起来像这样
id v1 v2 v3 v4 etc.
1 1 4 2 5
2 4 4 6 1
3 2 1 3 4
etc.
id name
1 red
2 blue
3 grey
4 green
5 black
6 gold
etc
而规则
看起来是这样的
id v1 v2 v3 v4 etc.
1 1 4 2 5
2 4 4 6 1
3 2 1 3 4
etc.
id name
1 red
2 blue
3 grey
4 green
5 black
6 gold
etc
我想得到的是
id v1 v2 v3 v4 etc.
1 red green blue black
2 green green gold red
3 blue red grey green
etc.
因此,基本上使用规则中数字和颜色之间的映射来变异df,您可以执行以下操作:
results = df.applymap(lambda i: rules.loc[i, 'name'])
使用df
类似
v1 v2 v3 v4
id
1 1 4 2 5
2 4 4 6 1
3 2 1 3 4
name
id
1 red
2 blue
3 grey
4 green
5 black
6 gold
和规则
类似
v1 v2 v3 v4
id
1 1 4 2 5
2 4 4 6 1
3 2 1 3 4
name
id
1 red
2 blue
3 grey
4 green
5 black
6 gold
结果是
v1 v2 v3 v4
id
1 red green blue black
2 green green gold red
3 blue red grey green