【问题标题】:sorting python pandas dataframe by matching values of two different columns and calculate the mean通过匹配两个不同列的值对python pandas数据帧进行排序并计算平均值
【发布时间】:2017-07-05 02:50:02
【问题描述】:

我有一个导入为 pandas 数据框的文本文件,如下所示:

       a   b  c   d      e
index
0      18  1  1 -30.47  0.746
1      19  1  1 -30.47  0.751
2      20  1  1 -30.47  0.801
3      33  2  1 -30.47  1.451
4      34  2  1 -30.47  1.534
5      35  2  1 -30.47  1.551
6      49  3  1 -30.47  2.297
7      50  3  1 -30.47  2.301
8      51  3  1 -30.47  2.351
9      64  4  1 -30.47  3.001
10     65  4  1 -30.47  3.085
11     66  4  1 -30.47  3.101
12    346  1  2 -28.47  0.601
13    347  1  2 -20     0.682
14    348  1  2 -28.47  0.701
15    362  2  2 -28.47  1.445
16    363  2  2 -28.47  1.451
17    364  2  2 -28.47  1.501
18    377  3  2 -28.47  2.151
19    378  3  2 -28.47  2.233
20    379  3  2 -28.47  2.251
21    392  4  2 -28.47  2.901
22    393  4  2 -28.47  2.996
23    394  4  2 -28.47  3.001
24    675  1  3 -25     0.596
25    676  1  3 -26     0.601
26    677  1  3 -22     0.651
27    690  2  3 -26.47  1.301
28    691  2  3 -26.47  1.384
29    692  2  3 -26.47  1.401
30    705  3  3 -26.47  2.051
31    706  3  3 -26.47  2.147
32    707  3  3 -26.47  2.151
33    721  4  3 -26.47  2.851
34    722  4  3 -26.47  2.935
35    723  4  3 -26.47  2.951

我一直在尝试重组数据框如下:对于第二列中的每个值,例如值1,第三列和第四列中有多个对应的值。例如

值1(第一列)对应:值1(第三列),-3.47(第四列); 值 1(第三列),-3.47(第四列);值 1(第三列),-3.47(第四列).....值 3(第三列),-25(第四列);值 3(第三列),-26(第四列);值 3(第三列),-22(第四列)

等等。我想创建一个新的数据框,其中值 1 还有其他三个对应的列 1,2 和 3,其中包含原始第四列的三个值的平均值。输出应如下所示:

第 1 列,第 2 列,第 3 列,第 4 列

1 均值(-3.47,-3.47,-3.47) 均值(-28.47,-20,-20.47) 均值(-25,-26,-22)

输出应包含第一列的所有值,在本例中为 1、2、3 和 4(表 4x3)。我不是 python 专家,除了匹配一对值之外,我不知道应该如何处理这个任务。任何帮助都非常受欢迎!

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    IIUC:

    df.groupby([2,3])[4].mean().reset_index(name='Mean').pivot(columns=3,index=2,values='Mean')
    

    输出:

    3      1          2          3
    2                             
    1 -30.47 -25.646667 -24.333333
    2 -30.47 -28.470000 -26.470000
    3 -30.47 -28.470000 -26.470000
    4 -30.47 -28.470000 -26.470000
    

    【讨论】:

    • 我得到:3 -30.47 -28.47 -26.47 -26.00 -25.00 -22.00 -20.00 2 1 1.914167 NaN NaN NaN NaN NaN 2 NaN 1.930182 NaN NaN NaN NaN 0.682 3 NaN NaN 01 2 9 20. NaN 01 2.102 6 20.66 NaN 那么有什么问题?
    猜你喜欢
    • 2019-12-22
    • 1970-01-01
    • 2015-03-26
    • 2022-01-06
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多