python 按周或月分割 pandas 数据框,并根据这些 sp 对数据进行分组

2023-12-09

DateOccurred    CostCentre  TimeDifference
03/09/2012  2073    28138
03/09/2012  6078    34844
03/09/2012  8273    31215
03/09/2012  8367    28160
03/09/2012  8959    32037
03/09/2012  9292    30118
03/09/2012  9532    34200
03/09/2012  9705    27240
03/09/2012  10085   31431
03/09/2012  10220   22555
04/09/2012  6078    41126
04/09/2012  7569    31101
04/09/2012  8273    30994
04/09/2012  8959    30064
04/09/2012  9532    34655
04/09/2012  9705    26475
04/09/2012  10085   31443
04/09/2012  10220   33970
05/09/2012  2073    28221
05/09/2012  6078    27894
05/09/2012  7569    29012
05/09/2012  8239    42208
05/09/2012  8273    31128
05/09/2012  8367    27993
05/09/2012  8959    20669
05/09/2012  9292    33070
05/09/2012  9532    8189
05/09/2012  9705    27540
05/09/2012  10085   28798
05/09/2012  10220   23164
06/09/2012  2073    28350
06/09/2012  6078    35648
06/09/2012  7042    27129
06/09/2012  7569    31546
06/09/2012  8239    39945
06/09/2012  8273    31107
06/09/2012  8367    27795
06/09/2012  9292    32974
06/09/2012  9532    30320
06/09/2012  9705    37462
06/09/2012  10085   31703
06/09/2012  10220   7807
06/09/2012  14573   186
07/09/2012  0   0
07/09/2012  0   0
07/09/2012  2073    28036
07/09/2012  6078    31969
07/09/2012  7569    32941
07/09/2012  8273    30073
07/09/2012  8367    29391
07/09/2012  9292    31927
07/09/2012  9532    30127
07/09/2012  9705    27604
07/09/2012  10085   28108
08/09/2012  2073    28463
10/09/2012  6078    31266
10/09/2012  8239    16390
10/09/2012  8273    31140
10/09/2012  8959    30858
10/09/2012  9532    30794
10/09/2012  9705    28752
11/09/2012  0   0
11/09/2012  0   0
11/09/2012  0   0
11/09/2012  0   0
11/09/2012  0   0
11/09/2012  2073    28159
11/09/2012  6078    36835
11/09/2012  8239    45354
11/09/2012  8273    30922
11/09/2012  8367    31382
11/09/2012  8959    29670
11/09/2012  9292    33582
11/09/2012  9705    29394
11/09/2012  10085   17140
12/09/2012  2073    28283
12/09/2012  6078    31139
12/09/2012  7042    35063
12/09/2012  8273    31075
12/09/2012  8367    29795
12/09/2012  9292    33496
12/09/2012  9532    31669
12/09/2012  9705    26166
12/09/2012  10085   29889
12/09/2012  10220   35656
13/09/2012  2073    28144
13/09/2012  6078    30544
13/09/2012  7097    30866
13/09/2012  8273    30772
13/09/2012  8367    32387
13/09/2012  8959    29307
13/09/2012  9292    32348
13/09/2012  9532    28137
13/09/2012  9705    28823
13/09/2012  10085   31543
13/09/2012  10220   28293
14/09/2012  0   12433
14/09/2012  0   12434
14/09/2012  0   12434
14/09/2012  0   12434
14/09/2012  0   12434
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   12433
14/09/2012  0   0
14/09/2012  0   12433
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   1720
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   384
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   0
14/09/2012  0   383
14/09/2012  2073    28438
14/09/2012  6078    27255
14/09/2012  8273    29989
14/09/2012  8959    26892
14/09/2012  9292    33202
14/09/2012  9532    30862
14/09/2012  9705    26857
14/09/2012  10085   32657
14/09/2012  10220   27296
15/09/2012  6078    3832
17/09/2012  6078    30004
17/09/2012  7569    30390
17/09/2012  8239    41421
17/09/2012  8273    26337
17/09/2012  8367    31631
17/09/2012  8959    17989
17/09/2012  9292    35703
17/09/2012  9532    36542
17/09/2012  9705    27488
17/09/2012  10085   30849
17/09/2012  10220   32575
18/09/2012  2073    28293
18/09/2012  6078    27450
18/09/2012  7569    30323
18/09/2012  8239    38481
18/09/2012  8273    31154
18/09/2012  8367    27944
18/09/2012  8959    28196
18/09/2012  9292    30844
18/09/2012  9532    33128
18/09/2012  9705    32100
19/09/2012  2073    28227
19/09/2012  6078    32243
19/09/2012  7569    29041
19/09/2012  8239    42791
19/09/2012  8273    30966
19/09/2012  8367    26420
19/09/2012  8959    29394
19/09/2012  9292    14865
19/09/2012  9532    23618
19/09/2012  10085   31614
19/09/2012  10220   8686
20/09/2012  2073    28260
20/09/2012  6078    30446
20/09/2012  7097    34909
20/09/2012  7569    30869
20/09/2012  8273    31079
20/09/2012  8367    30162
20/09/2012  9292    13104
20/09/2012  9532    36614
20/09/2012  9705    35617
20/09/2012  10085   31821
20/09/2012  10220   30055
20/09/2012  14573   468
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   3
21/09/2012  0   0
21/09/2012  0   0
21/09/2012  0   3
21/09/2012  2073    28308
21/09/2012  6078    33833
21/09/2012  7569    32335
21/09/2012  9292    33824
21/09/2012  9532    33376
21/09/2012  10220   21002
22/09/2012  2073    28402
23/09/2012  2073    28109
24/09/2012  2073    28431
24/09/2012  6078    30027
24/09/2012  7097    31914
24/09/2012  8239    35617
24/09/2012  8273    30670
24/09/2012  8367    29084
24/09/2012  8959    31023
24/09/2012  9292    34394
24/09/2012  9532    31255
24/09/2012  9705    18758
24/09/2012  10085   29290
24/09/2012  10220   33230
25/09/2012  2073    28506
25/09/2012  6078    32043
25/09/2012  7042    34953
25/09/2012  7569    30898
25/09/2012  8239    41297
25/09/2012  8273    31012
25/09/2012  8367    29645
25/09/2012  8959    29904
25/09/2012  9532    37875
25/09/2012  9705    13280
25/09/2012  10085   35023
25/09/2012  10220   31359
26/09/2012  2073    28388
26/09/2012  6078    29765
26/09/2012  7097    31561
26/09/2012  7569    29151
26/09/2012  8239    40369
26/09/2012  8367    28174
26/09/2012  8959    26554
26/09/2012  9292    32104
26/09/2012  9532    33194
26/09/2012  9705    30377
26/09/2012  10085   31503
26/09/2012  10220   28310
27/09/2012  0   0
27/09/2012  0   0
27/09/2012  0   0
27/09/2012  0   0
27/09/2012  0   0
27/09/2012  0   0
27/09/2012  0   0
27/09/2012  0   0
27/09/2012  2073    28491
27/09/2012  6078    31137
27/09/2012  8239    38403
27/09/2012  8273    31117
27/09/2012  8367    28462
27/09/2012  9292    32387
27/09/2012  9532    23023
27/09/2012  9705    32790
27/09/2012  10085   33460
27/09/2012  10220   31782
28/09/2012  0   161
28/09/2012  2073    28381
28/09/2012  7569    32322
28/09/2012  8239    38362
28/09/2012  8273    30533
28/09/2012  8959    17128
28/09/2012  9292    32484
28/09/2012  9532    18586
28/09/2012  9705    27902
29/09/2012  2073    28583
  1. 上面是一个拥有一百万条记录的数据框示例
  2. 如何按周或月对其进行切片或分组,并按成本中心对秒数列进行求和?*

也许首先按 CostCentre 分组,然后使用 Series/DataFrameresample()?

In [72]: centers = {}

In [73]: for center, idx in df.groupby("CostCentre").groups.iteritems():
   ....:     timediff = df.ix[idx].set_index("Date")['TimeDifference']
   ....:     centers[center] = timediff.resample("W", how=sum)

In [77]: pd.concat(centers, names=['CostCentre'])
Out[77]: 
CostCentre  Date      
0           2012-09-09         0
            2012-09-16     89522
            2012-09-23         6
            2012-09-30       161
2073        2012-09-09    141208
            2012-09-16    113024
            2012-09-23    169599
            2012-09-30    170780
6078        2012-09-09    171481
            2012-09-16    160871
            2012-09-23    153976
            2012-09-30    122972

额外细节:

When parse_dates is True对于 pd.read_* 函数,index_col也必须设置。

In [28]: df = pd.read_clipboard(sep=' +', parse_dates=True, index_col=0,
   ....:                        dayfirst=True)

In [30]: df.head()
Out[30]: 
              CostCentre  TimeDifference
DateOccurred                            
2012-09-03          2073           28138
2012-09-03          6078           34844
2012-09-03          8273           31215
2012-09-03          8367           28160
2012-09-03          8959           32037

由于 resample() 需要 TimeSeries 索引的帧/系列,因此在创建期间设置索引就无需为每个组单独设置索引。 GroupBy 对象还有一个 apply 方法,它基本上是上面用 pd.concat() 完成的“组合”步骤的语法糖。

In [37]: x = df.groupby("CostCentre").apply(lambda df: 
   ....:         df['TimeDifference'].resample("W", how=sum))

In [38]: x.head(12)
Out[38]: 
CostCentre  DateOccurred
0           2012-09-09           0
            2012-09-16       89522
            2012-09-23           6
            2012-09-30         161
2073        2012-09-09      141208
            2012-09-16      113024
            2012-09-23      169599
            2012-09-30      170780
6078        2012-09-09      171481
            2012-09-16      160871
            2012-09-23      153976
            2012-09-30      122972
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 按周或月分割 pandas 数据框,并根据这些 sp 对数据进行分组 的相关文章

  • 使用 Boto3 以字符串形式打开 S3 对象

    我知道使用 Boto 2 可以使用以下命令将 S3 对象作为字符串打开 get contents as string http boto readthedocs org en latest ref file html highlight c
  • Series.sort() 和 Series.order() 有什么区别?

    s pd Series nr randint 0 10 5 index nr randint 0 10 5 s Output 1 3 7 6 2 0 9 7 1 6 order 按值排序并返回一个新系列 s order Output 2 0
  • 如何通过 python 多处理利用所有核心

    我一直在摆弄Python的multiprocessing现在已经使用了一个多小时的功能 尝试使用并行化相当复杂的图形遍历函数multiprocessing Process and multiprocessing Manager import
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • MySQL 两种日期格式之间的转换

    用户将以这种格式输入日期 2017 年 2 月 17 日 存储在 mysql 数据库中的日期格式如下 2015 02 17 00 00 00 我想做的是 SELECT FROM insurance where DATE FORMAT in
  • 使用python从gst管道抓取帧到opencv

    我在用着OpenCV http opencv org 和GStreamer0 10 我使用此管道通过自定义套接字通过 UDP 接收 MPEG ts 数据包sockfd由 python 提供并显示它xvimagesink 而且效果很好 以下命
  • 在 python pandas 中,如何保存“网格图”?

    我对 pandas 绘图工具很陌生 在文档中 以下命令非常方便 myplot rts ret hist bins 50 by rts primary mic 然而 当我尝试从图中获取图形参考并保存它时 问题就出现了 myfigure myp
  • 如何确保 re.findall() 停止在正确的位置?

    这是我的代码 a import re re findall r lt title gt lt title gt a 结果是 title aaa
  • AttributeError:“模块”对象没有属性[重复]

    这个问题在这里已经有答案了 我有两个 python 模块 a py import b def hello print hello print a py print hello print b hi b py import a def hi
  • python 中的 <> 运算符有什么作用?

    我刚刚遇到这个here http www feedparser org feedparser py 总是这样使用 if string1 find string2 lt gt 1 pass 什么是 lt gt 运算符这样做 为什么不使用通常的
  • 根据其他单元格值更改多个单元格值

    我想更改包含的单元格moving to movingToOpenor movingToClose基于下一个单元格中给出的状态 有时循环会被中断并且不会从open to close or close to open 这是我当前的数据框 Dat
  • Airflow 1.9 - 无法将日志写入 s3

    我在 aws 的 kubernetes 中运行气流 1 9 我希望将日志发送到 s3 因为气流容器本身的寿命并不长 我已经阅读了描述该过程的各种线程和文档 但我仍然无法让它工作 首先是一个测试 向我证明 s3 配置和权限是有效的 这是在我们
  • XPath:通过当前节点属性选择当前和下一个节点的文本

    首先 这是从我之前的问题 https stackoverflow com questions 5202187 xpath select current and next nodes text by current node attribut
  • 可以使用哪些技术来衡量 pandas/numpy 解决方案的性能

    Question 如何简洁全面地衡量下面各个功能的性能 Example 考虑数据框df df pd DataFrame Group list QLCKPXNLNTIXAWYMWACA Value 29 52 71 51 45 76 68 6
  • Postgres 按查询分组

    我正在尝试在 postgres 的查询中使用 group by 我无法让它按照我想要的方式工作 以便根据需要对结果进行分组 这是另一个堆栈问题的扩展我刚刚回答过的递归查询 https stackoverflow com questions
  • 检测是否从psycopg2游标获取?

    假设我执行以下命令 insert into hello username values me 我跑起来就像 cursor fetchall 我收到以下错误 psycopg2 ProgrammingError no results to fe
  • 如何给URL添加变量?

    我正在尝试从网站收集数据 我有一个 Excel 文件 其中包含该网站的所有不同扩展名 F i www example com example2 我有一个脚本可以成功从网站中提取 HTML 但现在我想为所有扩展自动执行此操作 然而 当我说 s
  • Django 管理器链接

    我想知道是否有可能 如果可以的话 如何 将多个管理器链接在一起以生成受两个单独管理器影响的查询集 我将解释我正在研究的具体示例 我有多个抽象模型类 用于为其他模型提供小型的特定功能 其中两个模型是DeleteMixin 和GlobalMix
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome
  • 如何(安全)将 Python 对象发送到我的 Flask API?

    我目前正在尝试构建一个 Flask Web API 它能够在 POST 请求中接收 python 对象 我使用 Python 3 7 1 创建请求 使用 Python 2 7 运行 API 该 API 设置为在我的本地计算机上运行 我试图发

随机推荐