本文介绍了在Pandas数据框中合并具有相同名称的多个列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下数据框:

pp  b          pp   b
5   0.001464    6   0.001853
5   0.001459    6   0.001843

是否可以组合具有相同名称的列?我只希望将此作为输出:

Is there a way to combine columns with the same name? I just want this as output:

pp  b         
5   0.001464    
5   0.001459    
6   0.001853
6   0.001843


推荐答案

尝试 groupby 且轴= 1

df.groupby(df.columns.values, axis=1).agg(lambda x: x.values.tolist()).sum().apply(pd.Series).T.sort_values('pp')
Out[320]: 
          b   pp
0  0.001464  5.0
2  0.001459  5.0
1  0.001853  6.0
3  0.001843  6.0

使用 wide_to_long

s=pd.Series(df.columns)
df.columns=df.columns+s.groupby(s).cumcount().astype(str)

pd.wide_to_long(df.reset_index(),stubnames=['pp','b'],i='index',j='drop',suffix='\d+')
Out[342]: 
            pp         b
index drop              
0     0      5  0.001464
1     0      5  0.001459
0     1      6  0.001853
1     1      6  0.001843

这篇关于在Pandas数据框中合并具有相同名称的多个列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-18 10:20