我有这样的数据:
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
如何使用Pandas 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生成伪group-id开始:
df["group_id"] = (df.Type != df.Type.shift()).cumsum()
0 1
1 1
2 1
3 2
4 2
5 3
6 3
并用它来将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








暂无数据