如何用Pandas生成含偶数序列及累加列的DataFrame并转为字典列表
实现需求:生成指定偶数序列与累加值的DataFrame并转为字典格式
原代码问题修正
你提供的代码存在两处需要调整的细节:
- 循环范围错误:
range(0,100)是左闭右开区间,仅能生成到98的偶数,若要包含100,需改为range(0, 101) - 变量命名建议:避免使用
sum作为变量名(它是Python内置函数),建议改为sum_total这类自定义名称,避免冲突
修正后的循环实现代码如下:
import pandas as pd number_value = 2 numbers = [] accumulated = [] sum_total = 0 for i in range(0, 101): if i % number_value == 0: sum_total += i numbers.append(i) accumulated.append(sum_total) # 生成DataFrame并转为字典列表格式 df = pd.DataFrame({'column1': numbers, 'column2': accumulated}) result = df.to_dict('list') print(result)
更高效的Pandas原生实现
利用Pandas内置方法可以省去手动循环,代码更简洁高效:
import pandas as pd # 直接生成0到100的偶数序列 column1 = pd.Series(range(0, 101, 2)) # 调用cumsum()自动计算累加值 column2 = column1.cumsum() # 构建DataFrame并转为目标格式 df = pd.DataFrame({'column1': column1, 'column2': column2}) result = df.to_dict('list') print(result)
这段代码中,range(0,101,2)通过步长参数直接生成偶数序列,cumsum()方法一键完成累加计算,完全替代手动循环逻辑,运行效率更高,代码可读性更强。
内容的提问来源于stack exchange,提问作者francis
相关产品推荐
相关产品推荐

