Pandas数据帧的累积和函数

时间:2015-10-23 19:28:32

标签: python pandas

我试图捕捉"跑步"给定一系列期间金额的累计金额。

参见示例:

enter image description here

df = df[1:4].cumsum() # this doesn't return the desired result

2 个答案:

答案 0 :(得分:3)

您希望axis=1对各行进行求和。

df.cumsum(axis=1)

侧注 - 默认情况下执行[1:4]切片(即numpy或类似列表的语义)。如果要按标签选择列,请使用df.loc[:, 1:4]

答案 1 :(得分:2)

您正在寻找axis参数。许多Pandas函数使用此参数来跨列或跨行应用操作。使用axis=0逐行应用,axis=1按列应用。此操作实际上是遍历列,因此您需要axis=1

df.cumsum(axis=1)本身适用于您的示例以生成输出表。

In [3]: df.cumsum(axis=1)
Out[3]:
      1   2   3   4
10   16  30  41  61
51   13  29  40  50
13   11  30  45  61
321  12  27  37  52

我怀疑你对限制特定范围的列很感兴趣。为此,您可以将.loc与列标签(我的字符串)一起使用。

In [4]: df.loc[:, '2':'3'].cumsum(axis=1)
Out[4]:
      2   3
10   14  25
51   16  27
13   19  34
321  15  25

.loc是基于标签的,包含边界。如果您想了解有关Pandas索引的更多信息,请查看docs