如何计算Pandas中行满足一定条件的列的平均值

How to calculate the average of a column where the row meets a certain condition in Pandas

基本上我有这个数据框:

import pandas as pd
dict = {'number': [1,1,1,1,1,2,2,2,4,4,4,4,6,6], 'time':[34,33,41,36,43,22,24,32,29,28,33,32,55,51]}
df = pd.DataFrame(dict)
print(df)

输出:

我想转换 df 或创建另一个,而不是多行具有相同的 'number',每行有一个唯一的 'number';在 'time' 列中,它的平均值(具有相同 'number' 的记录)。此外,应该有一个名为 'count' 的第三列,显示每个 'number' 拥有的记录数量。

预期的输出是:

谢谢。

只需使用 groupby + agg:

agg = df.groupby('number')['time'].agg(['count', 'mean']).reset_index()

输出:

>>> agg
   number  count  mean
0       1      5  37.4
1       2      3  26.0
2       4      4  30.5
3       6      2  53.0