我正在尝试将pandas数据框与数据透视表合并,并更改列名称。我可以保留枢轴中的原始列名称而不将它们合并到一个列中吗?
df1:
pn number_of_records date
A103310 0 2017-09-01
B103309 0 2017-06-01
C103308 0 2017-03-01
D103307 2 2016-12-01
E103306 2 2016-09-01
df2,它是一个数据透视表:
pn t1
a1 b1 c1
A103310 3432 324 124
B103309 342 123 984
C103308 435 487 245
D103307 879 358 234
E103306 988 432 235
在这个数据帧上进行合并给了我:
df1_df2 = pd.merge(df1,df2,how="left",on="pn")
给我的列名称为:
pn number_of_records date (t1,a1) (t1,b1) (t1,c1)
我怎样才能将它们作为:
pn number_of_records date t1
a1 b1 c1
合并后的数据框中的?
答案 0 :(得分:1)
为df1
pd.concat([df1], axis=1, keys=['']).swaplevel(0, 1, 1).merge(df2, on='pn')
pn number_of_records date t1
a1 b1 c1
0 A103310 0 2017-09-01 3432 324 124
1 B103309 0 2017-06-01 342 123 984
2 C103308 0 2017-03-01 435 487 245
3 D103307 2 2016-12-01 879 358 234
4 E103306 2 2016-09-01 988 432 235