如何将一个数据帧映射到另一个具有较少行数的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