数据分析熊猫

时间:2020-11-03 11:19:16

标签: pandas dataframe statistics

我正在开发一个非常广泛的数据集的分析,该数据集具有属性(g,month,p),这些属性使用熊猫的groupby按组进行组织。

G   month   p
G1  1   0.040698496
G1  2   0.225640771
G1  3   0.236948047
G1  4   0.119339576
G1  5   0.779272432
G2  1   0.892168636
G2  2   0.062467967
G2  3   0.936044226
G3  1   0.509212613
G3  2   0.476718744
G3  3   0.407299543
G3  4   0.843260893
G4  1   0.882554249

然后我将G组的统计信息从1提取到n,如下所示

    g1  g2  g3  gn
mean    0.280379864 0.630226943 0.559122948 …
std 0.290326376 0.49218285  0.194135874 …
count   5   3   4   …

需要创建一个新字段,该字段是变量p的组平均值的乘积,由于扩展(超过200个组),有一些方法可以使其自动... ...单独进行花很多时间。 预期的输出是

G   month   p   STD*p
G1  1   0.040698496 0.011815847
G1  2   0.225640771 0.065509467
G1  3   0.236948047 0.068792268
G1  4   0.119339576 0.034647427
G1  5   0.779272432 0.226243341
G2  1   0.892168636 0.439110102
G2  2   0.062467967 0.030745662
G2  3   0.936044226 0.460704915
G3  1   0.509212613 0.098856436
G3  2   0.476718744 0.09254821
G3  3   0.407299543 0.079071453
G3  4   0.843260893 0.16370719

1 个答案:

答案 0 :(得分:1)

GroupBy.transformstd一起用于重复聚合值,因此p列的倍数可能是重复的:

df['STD*p'] = df.groupby('G')['p'].transform('std').mul(df['p'])
print (df)
     G  month         p     STD*p
0   G1      1  0.040698  0.011816
1   G1      2  0.225641  0.065509
2   G1      3  0.236948  0.068792
3   G1      4  0.119340  0.034647
4   G1      5  0.779272  0.226243
5   G2      1  0.892169  0.439110
6   G2      2  0.062468  0.030746
7   G2      3  0.936044  0.460705
8   G3      1  0.509213  0.098856
9   G3      2  0.476719  0.092548
10  G3      3  0.407300  0.079071
11  G3      4  0.843261  0.163707
12  G4      1  0.882554       NaN