开发者社区> 问答> 正文

如何在Pandas Dataframe中的groupby之后使用分配功能

我很好奇我们是否能够在Python的groupby之后使用assign函数。我不想通过保存分组数据然后使用分配来做到这一点。

假设我们有:

import pandas as pd

data=pd.DataFrame({'Group':['A','A','A','B','B','B'],'One':[1,12,4,5,4,3],'Two':[5,3,4,5,2,7,]})

Group One Two

0 A 1 5

1 A 12 3

2 A 4 4

3 B 5 5

4 B 4 2

5 B 3 7

以下代码不起作用,因为在assign函数内部使用的数据不是分组的: data.groupby('Group').sum().assign(one_two=data['One']/data['Two'])

预期输出:

   One  Two  one_two

Group

A 17 12 1.416

B 12 14 0.857

同样,我不想将分组的数据分配给和新的数据帧,然后使用分配。我想在同一行代码中执行此操作。

展开
收起
游客6qcs5bpxssri2 2019-09-26 19:49:22 1489 0
1 条回答
写回答
取消 提交回答
  • 运用 DataFrame.eval

    data.groupby('Group').sum().eval('one_two = One / Two')

       One  Two   one_two
    

    Group

    A 17 12 1.416667

    B 12 14 0.857143

    2019-09-27 09:53:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
中文:即学即用的Pandas入门与时间序列分析 立即下载
即学即用的Pandas入门与时间序列分析 立即下载
demystifying dataframe and dataset 立即下载