Как взять среднее значение из данных кадров после их объединения? - PullRequest
0 голосов
/ 25 сентября 2018

После слияния двух фреймов данных я получаю это.

lst=[]
df = reduce(lambda x, y: pd.merge(x, y, on = 'wave',how='inner'), lst)


        wave  delta_stlines_x       EWs_x  stlines_x    fwhm_x    delta_stlines_y      EWs_y  stlines_y    fwhm_y 
0    4050.32        -0.018206   24.149970   0.298800  0.075930          -0.008341  22.686130   0.286550  0.074380  
1    4208.98         0.002338   44.108770   0.479080  0.086500           0.009903  43.781165   0.483710  0.085080  
2    4374.94        -0.001006   86.224040   0.716030  0.113130          -0.001223  87.003280   0.711390  0.114890 
3    4379.74         0.005713   31.087380   0.315050  0.092700           0.003867  29.657950   0.307750  0.090530  
4    4398.01        -0.003783   46.448520   0.507600  0.085960          -0.017225  53.260190   0.498690  0.100330
5    4502.21        -0.001863   61.331050   0.563750  0.102200          -0.001528  60.578470   0.562730  0.101130 

Теперь я хочу взять среднее значение для столбцов с одинаковым именем, кроме столбца wave.Требуемый результат должен выглядеть примерно так:

        wave  delta_stlines      EWs  stlines    fwhm  
0    4050.32            x+y      x+y      x+y       x+y
1    4208.98            x+y      x+y      x+y       x+y          
2    4374.94            x+y      x+y      x+y       x+y        
3    4379.74            x+y      x+y      x+y       x+y         
4    4398.01            x+y      x+y      x+y       x+y       
5    4502.21            x+y      x+y      x+y       x+y 

Здесь x + y, то есть среднее значение column_x и column_y, которые имеют одно и то же имя во входном фрейме данных.

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете сделать groupby с axis=1 и столбцом нам нужно split до groupby

df.groupby(df.columns.str.split('_').str[0],axis=1).sum()
Out[1254]: 
          EWs     delta     fwhm  stlines     wave
0   46.836100 -0.026547  0.15031  0.58535  4050.32
1   87.889935  0.012241  0.17158  0.96279  4208.98
2  173.227320 -0.002229  0.22802  1.42742  4374.94
3   60.745330  0.009580  0.18323  0.62280  4379.74
4   99.708710 -0.021008  0.18629  1.00629  4398.01
5  121.909520 -0.003391  0.20333  1.12648  4502.21
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...