尝试使用 lambda 函数添加一个新列,并在 DataFrame 中累积增加值
Trying to use a lambda function to add a new column with cumulative increase of the values in a DataFrame
假设我有一个简单的单列 DataFrame:
df = pd.DataFrame([0.01,0.02,0.03,0.04,0.05,0.06,0.07])
我正在尝试将前两个数字相乘,然后将其结果乘以第三个数字,然后将其结果乘以第四个数字,依此类推。
例如:
df['chainlink'] = df.apply(λ x: (1+x[0])*(1+x[1]))
这显然会在第一行创建一个值为 1.0302 的新列,然后是 NaN。然后我想做的是 (1.0302)(1+0.03) = 1.0611 然后 (1.0611)(1+0.04) = 1.1036 等
新列应该是数值的一种累积增加。
检查cumprod
df['new'] = df[0].add(1).cumprod()
0 1.010000
1 1.030200
2 1.061106
3 1.103550
4 1.158728
5 1.228251
6 1.314229
Name: 0, dtype: float64
假设我有一个简单的单列 DataFrame:
df = pd.DataFrame([0.01,0.02,0.03,0.04,0.05,0.06,0.07])
我正在尝试将前两个数字相乘,然后将其结果乘以第三个数字,然后将其结果乘以第四个数字,依此类推。
例如:
df['chainlink'] = df.apply(λ x: (1+x[0])*(1+x[1]))
这显然会在第一行创建一个值为 1.0302 的新列,然后是 NaN。然后我想做的是 (1.0302)(1+0.03) = 1.0611 然后 (1.0611)(1+0.04) = 1.1036 等
新列应该是数值的一种累积增加。
检查cumprod
df['new'] = df[0].add(1).cumprod()
0 1.010000
1 1.030200
2 1.061106
3 1.103550
4 1.158728
5 1.228251
6 1.314229
Name: 0, dtype: float64