Python数据帧聚合输出

Python数据帧聚合输出,python,pandas,Python,Pandas,我有这样的数据: Sr.No Value1 Value2 Value3 Type 1 2 1 N A 2 3 1 M A 3 3 2 X A 4 0 1 Y B 5 10 2 Z B 6 3 4 J A

我有这样的数据:

Sr.No   Value1  Value2  Value3  Type
    1   2       1        N      A
    2   3       1        M      A
    3   3       2        X      A
    4   0       1        Y      B
    5   10      2        Z      B
    6   3       4        J      A
    7   5       6        K      A
如何使用Python生成这样的输出

Sr.No   Value1  Value2  Value3     Type
1       8       4       N,M,X       A
2       10      3       X,Y         B
3       8       10      Z,J,K       A
基本上,我在寻找基于连续值1、值2和类型的分组。 我怎样才能做到这一点

我用这段代码进行了尝试,但它没有返回所需的输出

grpbook = pandabook.groupby(['Value1','Value2','Type']).agg({'Value1': 'sum','Value2': 'sum', 'Value3': lambda ind: ','.join(ind) })
类型值A根据索引和顺序分为两组。

您可以从cumsum开始生成伪组id:

并使用它将df划分为多个组:

df = df.groupby(["group_id", "Type"]).sum().reset_index().drop("group_id", 1)
df["Sr.No"] = df.index+1
print(df)
  Type  Sr.No  Value1  Value2
0    A      1       8       4
1    B      2      10       3
2    A      3       8      10

好的,我也会添加我的代码。我已经编辑并添加了我目前正在做的代码。A被分为两组。这是因为行索引分组吗?是的,这是基于序列/索引。优秀的Chris+1而不是cumsum I位于查找边界上。顺便说一句,这一个相对来说比形成边界要好。克里斯,我改变了一个问题,因为你们当前的求和方法对我不起作用。请检查问题。好的,我想知道是否有更有效的方法来解决更新后的问题。我能想到的唯一方法是显式地循环帧中的行@克里斯的回答肯定对你原来的问题很有效。@meW总是很高兴被表扬:谢谢@AhsanMukhtar很高兴为您提供帮助:
df = df.groupby(["group_id", "Type"]).sum().reset_index().drop("group_id", 1)
df["Sr.No"] = df.index+1
print(df)
  Type  Sr.No  Value1  Value2
0    A      1       8       4
1    B      2      10       3
2    A      3       8      10