【问题标题】:Trying to use a lambda function to add a new column with cumulative increase of the values in a DataFrame尝试使用 lambda 函数添​​加一个新列,并在 DataFrame 中累积增加值
【发布时间】:2022-01-23 15:27:16
【问题描述】:

假设我有一个简单的一列 DataFrame:

df = pd.DataFrame([0.01,0.02,0.03,0.04,0.05,0.06,0.07])

我试图将前两个数字相乘,然后将其结果乘以第三个数字,然后将其结果乘以第四个数字,依此类推。

例如:

df['chainlink'] = df.apply(lambda x: (1+x[0])*(1+x[1]))

这显然会在第一行创建一个值为 1.0302 的新列,然后是 NaN。然后我想做的是 (1.0302)(1+0.03) = 1.0611 然后 (1.0611)(1+0.04) = 1.1036 等等。

新列应该是数值的一种累积增长。

【问题讨论】:

    标签: python pandas dataframe math lambda


    【解决方案1】:

    检查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
    
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多