首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dataframe处理/分组:如何对每n行进行分组

Dataframe处理/分组:如何对每n行进行分组
EN

Stack Overflow用户
提问于 2014-08-11 14:08:34
回答 2查看 61关注 0票数 0

我是熊猫的新手,我需要更有经验的开发人员的帮助。假设我有这样一个Dataframe:

代码语言:javascript
复制
    Hour  ENTRIES_hourly_rainy  ENTRIES_hourly_not_rainy  ENTRIES_hourly_total
0      0               3559751                   7248389              10808140
1      1               1606880                   3361780               4968660
2      2                145719                    282413                428132
3      3                 26804                     54543                 81347
4      4                766333                   1672134               2438467
5      5                379272                    800500               1179772
6      6                 59030                    123764                182794
7      7                140758                    242930                383688
8      8               1950224                   3544500               5494724
9      9               3806660                   7234291              11040951
10    10                477959                    837528               1315487
11    11                235289                    410994                646283
12    12               7787028                  15026342              22813370
13    13               3145361                   6265131               9410492
14    14                388437                    776277               1164714
15    15                149688                    297624                447312
16    16               5735102                  11601840              17336942
17    17               4250723                   8442271              12692994
18    18                564774                   1123973               1688747
19    19                290350                    544482                834832
20    20               8302496                  16203000              24505496
21    21               4452747                   8668253              13121000
22    22                418217                    784093               1202310
23    23                115005                    230668                345673

小时列表示一天中的时间。我想修改这个dataframe,将4组中的行分组,并对其他列进行加和,总共有四行:

代码语言:javascript
复制
    Hour  ENTRIES_hourly_rainy  ENTRIES_hourly_not_rainy  ENTRIES_hourly_total
0    0-3               5339154                   10664712             16003866
1    4-7               ...                       ...                  ...
2    8-11              ...                       ...                  ...
3    12-15             ...                       ...                  ...
4    16-19             ...                       ...                  ...
5    20-23             ...                       ...                  ...

最有效/最优雅的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-11 14:27:09

您将希望分组在值的范围内:

代码语言:javascript
复制
df['Hour'] = np.int64(df['Hour'] / 4)

然后,您可以轻松地聚合:

代码语言:javascript
复制
df.groupby('Hour').sum()

如果确实需要将Hour列重命名为类似于0-3的列,则需要

代码语言:javascript
复制
df.eval('Upper = ((Hour + 1) * 4) - 1')
df['Hour'] = df.Hour.astype(str) + '-' + df.Upper.astype(str)
del df['Upper']
票数 1
EN

Stack Overflow用户

发布于 2014-08-11 14:30:04

在R中,你可以这样做:

代码语言:javascript
复制
gp = as.integer(d$Hour/4)
tapply(d$ENTRIES_hourly_rainy, gp, sum)

#       0        1        2        3        4        5 
# 5339154  1345393  6470132 11470514 10840949 13288465 

只需将其应用于每一栏:

代码语言:javascript
复制
gp = as.integer(d$Hour/4)
apply(d[, -1], 2, function(col)tapply(col, gp, sum))

ENTRIES_hourly_rainy ENTRIES_hourly_not_rainy ENTRIES_hourly_total
0              5339154                 10947125             16286279
1              1345393                  2839328              4184721
2              6470132                 12027313             18497445
3             11470514                 22365374             33835888
4             10840949                 21712566             32553515
5             13288465                 25886014             39174479
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25245293

复制
相关文章

相似问题

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