我在此列中有DF:
"d_id","time","bb_count","r-w_rate","reconsects_count","recovbydrv_count","xfer_rate","bb_diffs","fail"
我想按d_id分组,失败并按中位数,均值和var聚合所有df,并使用后缀将它们合并
对于第一次合并,它的工作效果很完美,但是当我尝试合并第三个数据框时,它的工作正确,但是我右边的df列的名称没有更改。
def merge_fun(df_left,df_right,stat_left,stat_right):
output = df_left.merge(df_right, left_on=['d_id','fail'], right_on=['d_id','fail'],
suffixes=(stat_left,stat_right))
return output
output = merge_fun(ts_data.groupby(['d_id','fail']).mean(),ts_data.groupby(['d_id','fail']).median(),'_mean','_median')
output = merge_fun(output,ts_data.groupby(['d_id','fail']).var(),'_var','_var')
print(output)
我希望df的所有右栏将更改为'_var'后缀。
我得到的是:
bb_count_mean r-w_rate_mean reconsects_count_mean \
d_id fail
1 True 75.05 11.30 0.00
2 True 102.35 18.80 3.00
3 True 153.30 20.00 5.00
4 True 96.05 20.00 -2.00
5 True 140.45 9.55 29.05
... ... ... ...
10196 False 110.00 8.55 12.15
10197 False 123.40 15.20 53.55
10198 False 52.95 11.15 31.70
10199 False 89.50 6.90 50.25
10200 False 137.60 9.75 23.10
recovbydrv_count_mean xfer_rate_mean bb_diffs_mean \
d_id fail
1 True 96.75 82.60 0.00
2 True 121.70 82.55 0.00
3 True 166.00 93.90 0.00
4 True 154.90 112.85 0.00
5 True 149.15 94.75 2.50
... ... ... ...
10196 False 146.40 87.10 0.65
10197 False 58.55 82.50 4.80
10198 False 218.70 70.65 2.40
10199 False 151.80 62.40 4.10
10200 False 140.80 84.95 0.90
bb_count_median r-w_rate_median reconsects_count_median \
d_id fail
1 True 75.5 11.0 0.0
2 True 97.0 18.0 3.0
3 True 152.0 21.5 5.0
4 True 99.0 19.5 -2.0
5 True 146.0 9.5 31.5
... ... ... ...
10196 False 115.5 8.0 13.5
10197 False 127.0 15.5 53.0
10198 False 56.5 10.0 32.0
10199 False 88.0 7.5 50.0
10200 False 139.0 10.0 23.5
recovbydrv_count_median xfer_rate_median bb_diffs_median \
d_id fail
1 True 91.5 81.5 0.0
2 True 124.0 83.5 0.0
3 True 170.0 96.5 0.0
4 True 151.5 114.0 0.0
5 True 145.0 93.0 3.0
... ... ... ...
10196 False 146.5 90.5 1.0
10197 False 63.5 82.0 5.0
10198 False 226.0 71.0 2.0
10199 False 153.5 62.5 4.0
10200 False 139.5 83.0 1.0
bb_count r-w_rate reconsects_count recovbydrv_count \
d_id fail
1 True 2307.313158 13.694737 0.000000 3623.250000
2 True 1794.976316 14.905263 0.000000 3033.168421
3 True 3903.905263 29.368421 0.000000 5618.736842
4 True 5173.839474 8.000000 0.000000 10027.042105
5 True 3759.628947 14.155263 181.734211 4773.186842
... ... ... ... ...
10196 False 3385.263158 15.944737 14.765789 6692.884211
10197 False 3008.252632 25.536842 881.418421 302.681579
10198 False 259.734211 10.765789 218.852632 11011.273684
10199 False 1597.631579 9.568421 566.513158 5137.431579
10200 False 1122.147368 7.355263 39.989474 2042.484211
xfer_rate bb_diffs
d_id fail
1 True 63.515789 0.000000
2 True 51.944737 0.000000
3 True 72.094737 0.000000
4 True 112.976316 0.000000
5 True 83.671053 2.578947
... ... ...
10196 False 107.357895 0.344737
10197 False 69.631579 5.852632
10198 False 113.186842 2.568421
10199 False 46.252632 3.357895
10200 False 60.681579 0.831579
[10200 rows x 18 columns]