gpt4 book ai didi

Python列表-按第一项进行分组,对第二项进行计数和求和

转载 作者:行者123 更新时间:2023-11-30 23:18:42 28 4
gpt4 key购买 nike

我有一个这样的列表,称为数据

 [(4.0, 7.8, u'MNR'),
(1.0, 6.4, u'MNR'),
(9.0, 25.2, u'MNR'),
(8.0, 5.8, u'MNR'),
(7.0, 177.8, u'MNR'),
(4.0, 10.0, u'MNR'),
(2.0, 5.6, u'MNR'),
(2.0, 29.6, u'MNR'),
(1.0, 7.4, u'MNR'),
(2.0, 2.8, u'MNR'),
(8.0, 3.0, u'MNR'),
(2.0, 8.4, u'MNR'),
(3.0, 4.2, u'MNR'),
(2.0, 11.8, u'MNR')]

pd.Index(data)
MultiIndex(levels=[[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0],

我知道如何以这种方式获取数据:

data[0][0]
4.0

我想遍历列表并计算第一行中每个级别出现的次数。输出应该是这样的,第二列代表计数:

1.0  - 2
2.0 - 4
3.0 - 1

然后我想得到第二列的总和:

1.0 - 13.8
2.0 - 58.2
3.0 - 4.2

然后是平均

1.0  6.9
2.0 14.55
3.0 4.2

我尝试使用循环来完成此操作,并尝试使用 zip 认为,如果我可以将各个列表的前两个部分分别压缩到一个列表中,我将可以轻松地对这些列表执行操作:

 for index, item in enumerate(data):
item.count(data[0][0])

zip(data[-3])

最佳答案

由于您使用的是 pdMultiIndex,我假设这确实是一个 pandas 问题。您可以使用 groupbyagg 一步完成此操作 ( groupby tutorial ),而无需逐一迭代:

>>> df = pd.DataFrame(data)
>>> df.groupby(0)[1].agg(["count", "sum", "mean"])
count sum mean
0
1 2 13.8 6.90
2 5 58.2 11.64
3 1 4.2 4.20
4 2 17.8 8.90
7 1 177.8 177.80
8 2 8.8 4.40
9 1 25.2 25.20

关于Python列表-按第一项进行分组,对第二项进行计数和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26564542/

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