如何计算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
基本上我有这个数据框:
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