如何在Python DataFrame中对列数值累加生成新列
Python实现DataFrame指定列累加求和生成新列
方法一:使用pandas内置cumsum()方法
这是最简洁高效的实现方式,pandas的Series对象自带的cumsum()方法可以直接生成目标列的逐步累加结果,直接赋值给新列即可。
代码示例
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({'numbers': [1, 2, 3, 4, 5]}) # 生成累加新列 df['new column'] = df['numbers'].cumsum() print(df)
输出结果
| Index | numbers | new column |
|---|---|---|
| 0 | 1 | 1 |
| 1 | 2 | 3 |
| 2 | 3 | 6 |
| 3 | 4 | 10 |
| 4 | 5 | 15 |
方法二:手动循环实现(适合理解累加逻辑)
如果需要手动实现累加过程,可以通过遍历DataFrame的行来计算,适合学习底层逻辑时使用:
代码示例
import pandas as pd df = pd.DataFrame({'numbers': [1, 2, 3, 4, 5]}) total = 0 cumulative_values = [] for num in df['numbers']: total += num cumulative_values.append(total) df['new column'] = cumulative_values print(df)
该方法输出结果与cumsum()完全一致,但效率低于内置方法,仅建议用于原理学习。
内容的提问来源于stack exchange,提问作者Farid
相关产品推荐
相关产品推荐

