首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用涉及value组的第一个元素的计算添加列

使用涉及value组的第一个元素的计算添加列
EN

Stack Overflow用户
提问于 2019-06-19 03:14:25
回答 1查看 29关注 0票数 0

下面是一个数据帧示例:

代码语言:javascript
复制
prop1  prop2  prop3  value
a      x      1      2
a      x      2      3
a      y      1      4
a      y      2      5
b      x      1      6
b      x      2      7
b      y      1      8
b      y      2      9 

例如,我需要添加一个计算列,其中的值被划分为其组的第一个元素:

代码语言:javascript
复制
prop1  prop2  prop3  value  calculated
a      x      1      2      2/2
a      x      2      3      3/2
a      y      1      4      4/4
a      y      2      5      5/4
b      x      1      6      6/6
b      x      2      7      7/6
b      y      1      8      8/8
b      y      2      9      9/8

老实说,我不知道如何实现这一点。我试过了:

代码语言:javascript
复制
df['calculated'] = \
    df['value'] / df.groupby(['prop1', 'prop2']).agg('first')['value']

但它给了我ValueError: cannot join with no level specified and no overlapping names

如何计算这一列?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-19 03:19:25

groupby系列上试用transform

代码语言:javascript
复制
df['calculated'] = df['value'].div(df.groupby(['prop1', 'prop2'])['value']
                                 .transform('first')
                              )

Output:

  prop1 prop2  prop3  value  calculated
0     a     x      1      2    1.000000
1     a     x      2      3    1.500000
2     a     y      1      4    1.000000
3     a     y      2      5    1.250000
4     b     x      1      6    1.000000
5     b     x      2      7    1.166667
6     b     y      1      8    1.000000
7     b     y      2      9    1.125000
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56655644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档