如何用列表推导式创建列依赖前序列求和的DataFrame
解决方案
先导入依赖库:
import pandas as pd定义初始数据与目标列数:
initial_col = [0.0229, 0.0229, 0.0229] num_cols = 3 # 对应列索引0、1、2一行列表推导式生成目标DataFrame:
df = pd.DataFrame([[initial_col[i]] + [-0.0126 * (1.22 + sum(row[:j+1])) + 0.0383 for j in range(num_cols-1)] for i in range(len(initial_col))])
代码说明
- 外层列表推导式遍历初始列的每一行元素,构建DataFrame的每一行数据
- 每一行先放入初始值作为第0列
- 内层列表推导式生成后续列:针对每个后续列,计算当前行已生成的所有列的和,代入给定公式得到新列值
输出验证
生成的DataFrame结构符合需求(公式逻辑示意):
0 1 2
0.0229 (-0.0126*(1.22 + col0)) (-0.0126*(1.22 + col0 + col1))
0.0229 (-0.0126*(1.22 + col0)) (-0.0126*(1.22 + col0 + col1))
0.0229 (-0.0126*(1.22 + col0)) (-0.0126*(1.22 + col0 + col1))
内容的提问来源于stack exchange,提问作者flowover9
相关产品推荐
相关产品推荐

