我有两个数据帧:
df = pd.DataFrame({'A': [1,2,3,5,4,2], 'B':[1,2,4,1,2,3], 'C':[2,3,1,4,2,3]})
df1 = pd.DataFrame({'num':[1,2,3,4,5],'col':['red','red','blue','orange','orange']})
他们看起来像这样:
df:
A B C
0 1 1 2
1 2 2 3
2 3 4 1
3 5 1 4
4 4 2 2
5 2 3 3
df1:
col num
0 red 1
1 red 2
2 blue 3
3 orange 4
4 orange 5
我想要的是数据帧df,其值为df1:
df_new:
A B C
0 red red red
1 red red blue
2 blue orange red
3 orange red orange
4 orange red red
5 red blue blue
请记住,我在df中有很多行,并且还有数千个不同的值。
非常感谢!
答案 0 :(得分:1)
如果您将索引设置为num
上的df1
列,那么您可以使用apply
拨打lambda
并使用map
执行查询每栏:
In [11]:
df2 = df1.set_index('num')
df.apply(lambda x: x.map(df2['col']))
Out[11]:
A B C
0 red red red
1 red red blue
2 blue orange red
3 orange red orange
4 orange red red
5 red blue blue