我有两个数据帧,如下所示:
<span *ngIf="caseCaption" class="header-data">{{caseCaption.CaseDisplayNumber}}</span>
我正在尝试将df1中的索引添加到df2以生成如下所示的数据框:
df1:
dp value
0 d1 2
1 d1 3
2 d2 7
3 d2 8
4 d3 6
df2:
fv_name dp value
0 x-1 d1 2
1 x-2 d1 2
2 x-3 d1 3
3 x-1 d2 7
4 x-2 d2 7
5 x-3 d2 8
6 x-1 d3 6
7 x-2 d3 6
8 x-3 d3 6
我正在尝试一些不同类型的合并,如下所示,但我无法实现所需的数据框。
df3:
fv_name dp value dp_id
0 x-1 d1 2 0
1 x-2 d1 2 0
2 x-3 d1 3 1
3 x-1 d2 7 2
4 x-2 d2 7 2
5 x-3 d2 8 3
6 x-1 d3 6 4
7 x-2 d3 6 4
8 x-3 d3 6 4
提前感谢您提供任何帮助。
答案 0 :(得分:2)
将d1的索引提升为列,然后执行合并:
df1['dp_id'] = df1.index
df3 = pd.merge(df1, df2, on=['dp', 'value'], how='outer')
答案 1 :(得分:0)
使用rename_axis
&amp; reset_index
df3 = pd.merge(df1.rename_axis('dp_id').reset_index(), df2,
on=['dp', 'value'], how='outer')