这是我的dataframe:
df = pd.DataFrame({'a': [10, 20, 50]})
这是我想要的输出:
a b
0 10 100
1 20 20
2 50 10
我有一个初始值1000。然后我想创建列b
。b
的第一行是1000的10%,也就是100。第二行是我们之前得到的100的20%。最后一行是20的50%。
我试过这个代码,但它不工作:
df = df.reset_index(drop=True)
df.loc[0, 'b'] = 1000 * (df.a.iloc[0] / 100)
df['b'] = (df.a / 100) * df.b.shift(1)
1条答案
按热度按时间j9per5c41#
你在找
cumprod
吗?说明:首先除以100,因为我们处理的是百分比。然后求出该系列的累积乘积。最后乘以1000,这是你的起始值。