删除熊猫中重复的 headers (Python)

Removing duplicated headers in panda (Python)

基于下面的代码,我正在基于减法合并科学和数学。

for f in Science['Name']:
     Math=(df[df['Name'].str.startswith(f)])
     Math['Sub'] = Math['Name'].str.extract(r'(\w*)', expand=False)
     Field1= pd.merge(Science, Math, left_on='Sub', right_on='Sub')
     
     print(Field1)

上面代码的结果如下,但是我想删除重复的headers,它们是Name-x,Name-y,Sub和Name.我分享我的预期结果如下,我也想 将它存储在 csv 文件中 .

    Name_x      Name_y    Sub            Name
0  Numbers  Math-Numbers  Math         Math-01
1  Numbers  Math-Numbers  Math         Math-01
2  Numbers  Math-Numbers  Math         Math-01

    Name_x      Name_y    Sub           Name
0  Numbers  Math-Numbers  Math         Math-02
1  Numbers  Math-Numbers  Math         Math-02
2  Numbers  Math-Numbers  Math         Math-02

    Name_x      Name_y    Sub           Name
0  Numbers  Math-Numbers  Math         Math-03
1  Numbers  Math-Numbers  Math         Math-03
2  Numbers  Math-Numbers  Math         Math-03

预期的 CSV 文件:

    Name_x      Name_y    Sub           Name
0  Numbers  Math-Numbers  Math         Math-01
1  Numbers  Math-Numbers  Math         Math-01
2  Numbers  Math-Numbers  Math         Math-01
0  Numbers  Math-Numbers  Math         Math-02
1  Numbers  Math-Numbers  Math         Math-02
2  Numbers  Math-Numbers  Math         Math-02
0  Numbers  Math-Numbers  Math         Math-03
1  Numbers  Math-Numbers  Math         Math-03
2  Numbers  Math-Numbers  Math         Math-03

您所需要的只是连接生成的数据帧。 即

result = []
for f in Science['Name']:
     Math=(df[df['Name'].str.startswith(f)])
     Math['Sub'] = Math['Name'].str.extract(r'(\w*)', expand=False)
     Field1= pd.merge(Science, Math, left_on='Sub', right_on='Sub')
     result.append(Field1)
out_df = pd.concat(result)
print(out_df)