当前位置: 首页 > 面试题库 >

取pandas系列中每N行的总和

管炳
2023-03-14
问题内容

假设

s = pd.Series(range(50))

0      0
1      1
2      2
3      3
...
48     48
49     49

如何获得由每n行之和组成的新系列?

当n = 5时,预期结果如下所示;

0      10
1      35
2      60
3      85
...
8      210
9      235

如果使用loc或iloc并通过python循环,当然可以完成,但是我相信可以简单地以Pandas方式完成。

另外,这是一个非常简化的示例,我不希望对序列进行解释:)。我正在尝试的实际数据系列具有时间索引和每秒发生的事件数作为值。


问题答案:

GroupBy.sum

N = 5
s.groupby(s.index // N).sum()

0     10
1     35
2     60
3     85
4    110
5    135
6    160
7    185
8    210
9    235
dtype: int64

将索引分为5组,并相应地分组。

numpy.reshape + sum

如果大小是N的倍数(或5),则可以调整形状并添加:

s.values.reshape(-1, N).sum(1)
# array([ 10,  35,  60,  85, 110, 135, 160, 185, 210, 235])

numpy.add.at

b = np.zeros(len(s) // N)
np.add.at(b, s.index // N, s.values)
b
# array([ 10.,  35.,  60.,  85., 110., 135., 160., 185., 210., 235.])


 类似资料:
  • 问题内容: Dataframe.resample()仅适用于时间序列数据。我找不到从非时间序列数据中获取第n行的方法。最好的方法是什么? 问题答案: 我会使用,它根据整数位置并遵循常规python语法获取行/列切片。如果要每第5行:

  • 我有一个这样的数字列表: 如何以优雅的方式总结每个N(让我们假设2)个元素并将列表转换为: 编辑:我想出了以下解决方案: 它是有效的,但我仍然在寻找一个更易读、更简单的方法。

  • 问题内容: 目标 我有一个Pandas数据框,如下所示,具有多个列,并希望获取列的总数。 数据框 -: 我的尝试 : 我试图使用和获得列的总和: 这将导致以下错误: 预期产量 我期望输出如下: 或者,我想编辑一个包含总数的新标题: 问题答案: 您应该使用: 然后与配合使用,在这种情况下,索引应设置为与需要求和的特定列相同: 因为如果传递标量,则将填充所有行的值: 另有两个解决方案,请参见以下应用程

  • 我有一个7x12的2d数组。我一直在研究如何获得它的每一列和每一行的总和,并将每个结果放入列表中,一个是每列总和的结果,另一个是每个行的结果。 因此,对于列,我想将每列的结果保存在一个临时整数变量中,在每一行中使用“a”进行迭代,当“a”等于12(即行数)时,然后检查“p”(即列数)是否等于7并退出循环(这意味着每列的总和已添加到新数组中),如果不是这样,则临时变量将被添加到新数组中,临时变量和“

  • 问题内容: 我有pandas数据帧和(df1是vanila数据帧,df2由’STK_ID’和’RPT_Date’索引): 我可以通过以下方式获得df2的最后3行: 同时给所有行: 为什么呢 如何获取(没有索引的数据帧)的最后3行?熊猫0.10.1 问题答案: 别忘了!例如

  • 我试图为数据帧(如以下数据帧)获取每个分区每列的平均值: 也就是说,我想得到和的平均值,并将它们聚合成和的唯一组合。因此,生成的DataFrame应该是: 其中,我国城市分区的重复行已聚合为一行,具有平均值。 我研究了等等问题