如何通过映射另一个数据框的值来创建新列

时间:2019-07-02 17:09:50

标签: pandas

我有一个数据框df1,其中包含有关各种尺寸的衬衫和裤子的信息。 我有另一个数据框df2,其中包含衬衫和裤子的价格,所有尺寸均相同。 我需要在df1中添加一列“价格”,其中应包含存储在df2中的衬衫和裤子的价格。

我尝试如下组合两个数据框: 合并= df1.combine_first(df2) 但是没有达到预期的结果。

import pandas as pd

data1 = {'Item': ['Shirt', 'Shirt', 'Shirt','Pant','Pant','Pant'], 'Size':40,42,44,28,30,32]}

df1 = pd.DataFrame(data1, columns= ['Item','Size'])

data2 = {'Item': ['Shirt', 'Pant'],'Price': [1000,1500],}

df2 = pd.DataFrame(data2, columns= ['Item','Price'])

merged = df1.combine_first(df2)
merged

这就是我得到的:

Item    Price   Size
0   Shirt   1000.0  40
1   Shirt   1500.0  42
2   Shirt   NaN 44
3   Pant    NaN 28
4   Pant    NaN 30
5   Pant    NaN 32

相反,我想要:

Item    Price   Size
0   Shirt   1000.0  40
1   Shirt   1000.0  42
2   Shirt   1000.0  44
3   Pant    1500.0  28
4   Pant    1500.0  30
5   Pant    1500.0  32

0 个答案:

没有答案