熊猫:比较两个时间段的总和?

理查德

我有一个看起来像这样的数据框:

         prod_code      month  items      cost
0  040201060AAAIAI 2016-05-01      5    572.20   
1  040201060AAAKAK 2016-05-01    164  14805.19    
2  040201060AAALAL 2016-05-01  13465  14486.07  

我想首先对的前四个字符进行分组prod_code,然后对2016年1月至2月每个组的总成本进行求和,然后将其与2016年3月至4月的总成本进行比较,然后找出百分比增长幅度最大的组。两个时间段。

最好的方法是什么?

到目前为止,这是我的代码:

d = { 'prod_code': ['040201060AAAIAI', '040201060AAAIAJ', '040201060AAAIAI', '040201060AAAIAI', '040201060AAAIAI', '040201060AAAIAI', '040301060AAAKAG', '040301060AAAKAK', '040301060AAAKAK', '040301060AAAKAX', '040301060AAAKAK', '040301060AAAKAK'], 'month': ['2016-01-01', '2016-02-01', '2016-03-01', '2016-01-01', '2016-02-01', '2016-03-01', '2016-01-01', '2016-02-01', '2016-03-01', '2016-01-01', '2016-02-01', '2016-03-01'], 'cost': [43, 45, 46, 41, 48, 59, 8, 9, 10, 12, 15, 13] }
df = pd.DataFrame.from_dict(d)
df['para'] = df.prod_code.str[:4]
df_para = df.groupby(['para', 'month']).sum()

这使我df_para看起来像这样:

                 cost
para month
0402 2016-01-01    84
     2016-02-01    93
     2016-03-01   105
0403 2016-01-01    20
     2016-02-01    24
     2016-03-01    23

现在,我需要计算1月至2月和4月至3月每组的总和,然后计算这两组之间的差异,最后按这两组之间的差异进行排序。做这个的最好方式是什么?

智慧

您可以根据月份是Jan-Feb还是月份创建月份组变量Mar-Apr,然后按代码和月份组变量分组,汇总成本并计算差额:

import numpy as np
import pandas as pd
df['month_period'] = np.where(pd.to_datetime(df.month).dt.month.isin([1,2]), 1, 2)
# creation of the month group variable could be adjusted based on how you want to cut 
# your time, this is a simplified example which assumes you only have data from Jan-Apr

(df.groupby([df.prod_code.str[:4], df.month_period]).sum().groupby(level = 0).pct_change()
   .dropna().sort('cost', ascending=False))

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ElasticSearch-比较两个时间段内的不同值

来自分类Dev

如何计算两个时间段之间的时间?

来自分类Dev

加入两个时间段相交的地方

来自分类Dev

TimePeriodLibrary 将两个时间段相交

来自分类Dev

vb net 排除两个日期时间之间的时间段

来自分类Dev

mongodb:查询两个日期字段之间的时间段

来自分类Dev

如何计算两个时间段之间的小时和分钟?

来自分类Dev

在R中,如何根据两个日期之间的时间段合并数据帧?

来自分类Dev

如何在 Excel 中的两个时间段之间生成随机小时槽?

来自分类Dev

C#Linq如何枚举两个日期之间的时间段以获取图表数据

来自分类Dev

GroupBy 和 Sum 具有两个不同的时间段 - Linq

来自分类Dev

R:比较两个数据帧中的日期,并隔离在R中某个时间段内匹配的行

来自分类Dev

如何使用Linq获取不在某个时间段内驻留的前两个连续日期时间点?

来自分类Dev

在 Postgresql 中生成两个日期之间的一系列时间范围(重复时间段)

来自分类Dev

包括最后一个日期在内的两个日期之间的 20 天时间段

来自分类Dev

基于时间段的总和列

来自分类Dev

SQL:两个不同时间段的查询,并计算百分比变化?

来自分类Dev

如何写选择,使其在两个时间段之间仅返回一条记录

来自分类Dev

访问VBA,检查两个日期字段之间的时间段未超过特定日期

来自分类Dev

Jodatime中的错误会计算两个日期范围之间的时间段(每年近似)

来自分类Dev

Bash脚本,可以打印两个iso8601时间段之间的所有日期

来自分类Dev

给定两个时间段但选择不同的列值,选择收益百分比

来自分类Dev

访问VBA,检查两个日期字段之间的时间段未超过特定日期

来自分类Dev

比较python中的时间段

来自分类Dev

熊猫两个清单比较

来自分类Dev

给定一个带有时间段的表,查询每天的总和列表

来自分类Dev

如何在一个查询中获得不同时间段的总和

来自分类Dev

绘制(时间段内的离散总和)与(时间段)产生不连续性图

来自分类Dev

在C#.net中创建两个任务,并在特定时间段后关闭其中一个

Related 相关文章

  1. 1

    ElasticSearch-比较两个时间段内的不同值

  2. 2

    如何计算两个时间段之间的时间?

  3. 3

    加入两个时间段相交的地方

  4. 4

    TimePeriodLibrary 将两个时间段相交

  5. 5

    vb net 排除两个日期时间之间的时间段

  6. 6

    mongodb:查询两个日期字段之间的时间段

  7. 7

    如何计算两个时间段之间的小时和分钟?

  8. 8

    在R中,如何根据两个日期之间的时间段合并数据帧?

  9. 9

    如何在 Excel 中的两个时间段之间生成随机小时槽?

  10. 10

    C#Linq如何枚举两个日期之间的时间段以获取图表数据

  11. 11

    GroupBy 和 Sum 具有两个不同的时间段 - Linq

  12. 12

    R:比较两个数据帧中的日期,并隔离在R中某个时间段内匹配的行

  13. 13

    如何使用Linq获取不在某个时间段内驻留的前两个连续日期时间点?

  14. 14

    在 Postgresql 中生成两个日期之间的一系列时间范围(重复时间段)

  15. 15

    包括最后一个日期在内的两个日期之间的 20 天时间段

  16. 16

    基于时间段的总和列

  17. 17

    SQL:两个不同时间段的查询,并计算百分比变化?

  18. 18

    如何写选择,使其在两个时间段之间仅返回一条记录

  19. 19

    访问VBA,检查两个日期字段之间的时间段未超过特定日期

  20. 20

    Jodatime中的错误会计算两个日期范围之间的时间段(每年近似)

  21. 21

    Bash脚本,可以打印两个iso8601时间段之间的所有日期

  22. 22

    给定两个时间段但选择不同的列值,选择收益百分比

  23. 23

    访问VBA,检查两个日期字段之间的时间段未超过特定日期

  24. 24

    比较python中的时间段

  25. 25

    熊猫两个清单比较

  26. 26

    给定一个带有时间段的表,查询每天的总和列表

  27. 27

    如何在一个查询中获得不同时间段的总和

  28. 28

    绘制(时间段内的离散总和)与(时间段)产生不连续性图

  29. 29

    在C#.net中创建两个任务,并在特定时间段后关闭其中一个

热门标签

归档