python-熊猫:groupby,并创建一个新的列,将聚合应用于两列

我在将agg应用于groupby熊猫数据框时遇到困难.

我有一个像这样的数据框df:

order_id    distance_theo    bird_distance 
      10              100               80
      10               80               80
      10               70               80
      11               90               70
      11               70               70
      11               60               70
      12              200              180
      12              150              180
      12              100              180
      12               60              180

我想对order_id进行分组,并通过将每个组中第一行的distance_theo除以每个组中第一行(或任意行,因为在一个组中只有bird_distance的一个值)来使新的行变成乌鸦.

order_id    distance_theo    bird_distance    crow
      10              100               80    1.25
      10               80               80    1.25
      10               70               80    1.25
      11               90               70    1.29
      11               70               70    1.29
      11               60               70    1.29
      12              200              180    1.11
      12              150              180    1.11
      12              100              180    1.11
      12               60              180    1.11

我的尝试:
df.groupby(‘order_id’).agg({‘crow’,lambda x:x.distance_theo.head(1)/ x.bird_distance.head(1)})

但是我得到一个错误

'Series' object has no attribute 'distance_theo'

我该如何解决?感谢您的任何建议!

解决方法:

首先使用groupby:

s = df.groupby('order_id').transform('first')
df.assign(crow=s.distance_theo.div(s.bird_distance))

   order_id  distance_theo  bird_distance      crow
0        10            100             80  1.250000
1        10             80             80  1.250000
2        10             70             80  1.250000
3        11             90             70  1.285714
4        11             70             70  1.285714
5        11             60             70  1.285714
6        12            200            180  1.111111
7        12            150            180  1.111111
8        12            100            180  1.111111
9        12             60            180  1.111111

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...