Python 有没有办法计算Dataframe.groupby前五列的mean()?

Python 有没有办法计算Dataframe.groupby前五列的mean()?,python,pandas,dataframe,Python,Pandas,Dataframe,我有数据帧,每个组有不同的长度。 比如说, gid val1 val2 1 3 5 1 11 15 1 12 5 1 18 6 1 8 8 1 18 7 1 18 8 2 29 21 2 27 23 .... 然后,我想表演 def func(x): d = {} d['first2'] = x['val1'].first(5).mean() return pd.Series(...) grouped =

我有数据帧,每个组有不同的长度。 比如说,

gid val1 val2
1   3    5
1   11   15
1   12   5
1   18   6
1   8    8
1   18   7
1   18   8
2   29   21
2   27   23
....
然后,我想表演

def func(x):
  d = {}
  d['first2'] = x['val1'].first(5).mean()
  return pd.Series(...)
grouped = df.groupby(['gid']).apply(func)
这样我就可以得到同一组中x['val1']的前五列的平均值()

  • 有没有办法执行上述操作

  • 是否有任何方法可以执行上述操作,但要使用后半列而不是前五列


  • 提前谢谢。

    您想知道前5列的平均值吗?看起来您需要前5行的平均值。
    df.groupby('id')。cumcount()
    将为您提供组内的行号。
    .groupby()。head(5)
    将为您提供前5行,而
    groupby()。tail(5)
    将为您提供最后5行。@WJun请提供答案。如果您有样本数据集和预期结果,那么任何人都可以回答。对不起。有关更多详细信息,如上所示,第1组中有7行。但是,我不想得到每个组的mean(),我只想使用group1的前五行来计算group1的平均值。例如,组1的val1为[3,11,12,18,8,18,18],但预期结果为平均值(3,11,12,18,8)。