Skip to main content
 首页 » 编程设计

python之使用 lambda、Pandas 添加 10 行

2025年05月04日14grandyang

我在以下形式的 pandas 中有一个数据框:

        column 
0       0 
1       1 
2       3 
3       6 
4       10 
5       15 
6       21 
7       28 
8       36 
9       45 
10      55 
11      66 
12      78 
13      91 
14      105 
15      120 

任务是每 10 行求和并创建新列来求和。结果应该是这样的数据框:

        num     sum        Description(no need to add this column) 
0       0       0          sum of numbers of rows of column "num" by indexes(0) 
1       1       1          sum of numbers of rows of column "num" by indexes(0-1) 
2       3       4          sum of numbers of rows of column "num" by indexes(0-2) 
3       6       10         sum of numbers of rows of column "num" by indexes(0-3) 
4       10      20         sum of numbers of rows of column "num" by indexes(0-4) 
5       15      35         sum of numbers of rows of column "num" by indexes(0-5) 
6       21      56         sum of numbers of rows of column "num" by indexes(0-6) 
7       28      84         sum of numbers of rows of column "num" by indexes(0-7) 
8       36      120        sum of numbers of rows of column "num" by indexes(0-8) 
9       45      165        sum of numbers of rows of column "num" by indexes(0-9) 
10      55      220        sum of numbers of rows of column "num" by indexes(1-10) 
11      66      285        sum of numbers of rows of column "num" by indexes(2-11) 
12      78      360        sum of numbers of rows of column "num" by indexes(3-12) 
13      91      445        sum of numbers of rows of column "num" by indexes(4-13) 
14      105     540        sum of numbers of rows of column "num" by indexes(5-14) 
15      120     645        sum of numbers of rows of column "num" by indexes(6-15) 

你能解释一下如何使用 lambda 吗?我试过使用 shift,但没用。

请您参考如下方法:

您可以使用 rolling .sum 与 min_periods = 1:

df['sum'] = df.column.rolling(10, min_periods=1).sum() 
df