gpt4 book ai didi

python - 根据随机选择的 bin 获取数据帧列的均值和总和

转载 作者:行者123 更新时间:2023-12-05 03:54:59 24 4
gpt4 key购买 nike

我有一个如下所示的数据框。

数据

Index   ID  AA  BB  CC  BIN
0 Z1 10 11 12 1
1 Z1 0 12 13 1
2 Z1 20 13 14 2
3 Z1 34 14 15 3
4 Z1 54 52 16 3
5 Z1 67 53 17 3
6 Z7 45 54 18 1
7 Z7 34 55 19 2
8 Z7 45 56 57 2
9 Z7 45 56 58 3
10 Z7 67 67 59 3

我想要一个如下所示的数据框

数据2

ID   AA_SUM_12  AA_MEAN_12  BB_SUM_12  BB_MEAN_12  CC_SUM_12  CC_MEAN_12
Z1 30 10 36 12 39 13
Z7 124 41.33 165 55 94 31.33

SUM_12 给出了 'BIN' = 1 和 2 的总和,MEAN_12 的概念相同。

在真实的数据集中,有超过3000个不同的ID,'BIN'的范围从15

我想随机选取“BIN”,就像取平均值一样,其中 “BIN”135 或在 'BIN'45 等的数据帧形式中求和。

怎么做?

最佳答案

我理解问题需要长度为 23 的随机唯一 BIN:

print (df)
ID AA BB CC BIN
0 Z1 10 11 12 1
1 Z1 0 12 13 1
2 Z1 20 13 14 2
3 Z1 34 14 15 4
4 Z1 54 52 16 5
5 Z1 67 53 17 3
6 Z7 45 54 18 4
7 Z7 34 55 19 2
8 Z7 45 56 57 4
9 Z7 45 56 58 3
10 Z7 67 67 59 3

所以首先获取所有唯一值:

v = df['BIN'].unique()
print (v)
[1 2 4 5 3]

并传递给numpy.random.choice具有生成的随机长度 23:

r = np.random.choice(v, size=np.random.choice([2,3]))
print (r)
[3 5 1]

new = ''.join((str(x) for x in r))

然后按 Series.isin 过滤行和 boolean indexing并使用 mean 聚合 sum,最后添加到列名称生成 BINS 转换为 string加入:

df1 = df[df['BIN'].isin(r)].groupby('ID')[ 'AA', 'BB', 'CC'].agg(['mean','sum'])
df1.columns = df1.columns.map(lambda x: f'{x[0]}_{x[1]}_{new}')
print (df1)
AA_mean_351 AA_sum_351 BB_mean_351 BB_sum_351 CC_mean_351 CC_sum_351
ID
Z1 32.75 131 32.0 128 14.5 58
Z7 56.00 112 61.5 123 58.5 117

关于python - 根据随机选择的 bin 获取数据帧列的均值和总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60525627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com