如何将一个数据帧映射到另一个具有较少行数的df,这些行的总和是给定间隔内的索引值?
例如
给定df:

      Survived
Age
20           1
22           1
23           3
24           2
30           2
33           1
40           8
42           7

期望测向
(对于间隔=5):
      Survived
Age
20           7
25           0
30           3
35           0
40           15

(对于间隔=10):
      Survived
Age
20           7
30           3
40           15

最佳答案

您可以为groupby参数使用函数:

In [6]: df.groupby(lambda x: x//10 * 10).sum()
Out[6]:
    Survived
20         7
30         3
40        15

注意,这也适用于5,但它不是你想要的空组的工作方式,也就是说,它不是用零填充的!
In [12]: df.groupby(lambda x: x//5 *5).sum()
Out[12]:
    Survived
20         7
30         3
40        15

但是,如果数据包含5个时间间隔内这些组的值,则可以看到它正在工作。
In [18]: df
Out[18]:
     Survived
Age
20          1
22          1
23          3
24          2
26         99
30          2
33          1
40          8
42          7
47         99

In [19]: df.groupby(lambda x: x//5 *5).sum()
Out[19]:
    Survived
20         7
25        99
30         3
40        15
45        99

10-02 03:50