热线电话:13121318867

登录
2019-02-21 阅读量: 680
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

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

75.0000
4
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子