【发布时间】:2020-12-20 04:14:26
【问题描述】:
我有初始数据框:
r_id1 r_score1 rid2 r_score2
Rank
ID1 ID2
1 A-1 id-1 1.23 id-34 6.78
2 A-1 id-9 2.34 id-45 3.45
3 A-2 id-8 3.56 id-32 4.56
4 A-3 id-6 4.35 id-10 3.98
5 A-4 id-4 7.89 id-67 2.98
我希望我的数据框是 (Result_df):
Score_R1 Score_R2
r_id1 r_score1 rid2 r_score2
ID1 ID2
1 A-1 id-1 1.23 id-34 6.78
2 A-1 id-9 2.34 id-45 3.45
3 A-2 id-8 3.56 id-32 4.56
4 A-3 id-6 4.35 id-10 3.98
5 A-4 id-4 7.89 id-67 2.98
我的数据框是多索引和多索引列。 我试过这段代码
final_df.columns = [' '.join(col).strip() for col in final_df.columns.values]
这给了我这个输出
ID1 ID2 r_id1 r_score1 rid2 r_score2
1 A-1 id-1 1.23 id-34 6.78
2 A-1 id-9 2.34 id-45 3.45
3 A-2 id-8 3.56 id-32 4.56
4 A-3 id-6 4.35 id-10 3.98
5 A-4 id-4 7.89 id-67 2.98
之后:
cols = final_df.columns.map(''.join)
lvl = 'Score_R' + cols.str.extract('(\d+)', expand=False)
final_df.columns = [lvl, cols]
final_df.to_csv("f.csv")
输出是:
Score_R1 Score_R1 Score_R2 Score_R2
r_id1 r_score1 rid2 r_score2
ID1 ID2
1 A-1 id-1 1.23 id-34 6.78
2 A-1 id-9 2.34 id-45 3.45
3 A-2 id-8 3.56 id-32 4.56
4 A-3 id-6 4.35 id-10 3.98
5 A-4 id-4 7.89 id-67 2.98
我需要合并同名的列标题
Score_R1 Score_R2
r_id1 r_score1 rid2 r_score2
ID1 ID2
1 A-1 id-1 1.23 id-34 6.78
2 A-1 id-9 2.34 id-45 3.45
【问题讨论】:
标签: python python-3.x pandas dataframe multi-index