我如何根据每列的前一行创建一个包含单元格值的新数据框?
How can i create a new dataframe with cell values based on the previous row for each column?
我是 python 的新手,所以我需要问这个问题:
我有这个数据框:
我需要知道如何获得具有此结果的新数据框:
从第二行(索引 1)开始,要应用的公式是:
previous row cell value *(1+actual cell value)
.
您可以使用 .cumprod()
计算第一个行之后的累积乘积。在这里,我从第二行开始,将这些加 1 并计算累积乘积。然后我将它乘以第一行。
(df.iloc[1:]+1).cumprod() * df.iloc[0]
然后使用 pd.concat()
:
将数据帧的第一行 df.head(1)
与计算出的数据帧连接起来
pd.concat([df.head(1), ((df.iloc[1:]+1).cumprod() * df.iloc[0])], ignore_index=True)
这可以分成几个部分:
# calculation
df2 = (df.iloc[1:]+1).cumprod() * df.iloc[0]
# concatenate the first row of df with the calculation
pd.concat([df.head(1), df2], ignore_index=True)
我是 python 的新手,所以我需要问这个问题:
我有这个数据框:
我需要知道如何获得具有此结果的新数据框:
从第二行(索引 1)开始,要应用的公式是:
previous row cell value *(1+actual cell value)
.
您可以使用 .cumprod()
计算第一个行之后的累积乘积。在这里,我从第二行开始,将这些加 1 并计算累积乘积。然后我将它乘以第一行。
(df.iloc[1:]+1).cumprod() * df.iloc[0]
然后使用 pd.concat()
:
df.head(1)
与计算出的数据帧连接起来
pd.concat([df.head(1), ((df.iloc[1:]+1).cumprod() * df.iloc[0])], ignore_index=True)
这可以分成几个部分:
# calculation
df2 = (df.iloc[1:]+1).cumprod() * df.iloc[0]
# concatenate the first row of df with the calculation
pd.concat([df.head(1), df2], ignore_index=True)