首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据之前的行值和Python Pandas中另一列的值填充后续行?

如何根据之前的行值和Python Pandas中另一列的值填充后续行?
EN

Stack Overflow用户
提问于 2020-05-29 07:37:58
回答 1查看 18关注 0票数 0

我有以下df

代码语言:javascript
运行
复制
cases  percent_change
100    0.01
NaN    0.00
NaN    -0.001
NaN    0.05

对于cases列的下一行(从第二行开始),其计算方式为next cases = previous cases * (1 + previous percent_change),或者对于低于100的行,计算方式为100 * (1 + 0.01) = 101。因此,它应该像这样填充

代码语言:javascript
运行
复制
cases  percent_change
100    0.01
101    0.00
101    -0.001
100.899    0.05

我想忽略第一行(或100)。下面是我的代码,它不能工作

代码语言:javascript
运行
复制
df.loc[1:, 'cases'] = df['cases'].shift(1) * (1 + df['percent_change'].shift(1))

我也试过了,但没有成功

代码语言:javascript
运行
复制
df.loc[1:, 'cases'] = df.loc[1:, 'cases'].shift(1) * (1 + df.loc[1:, 'percent_change'].shift(1))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-29 07:53:49

代码语言:javascript
运行
复制
df['cases'] = (df.percent_change.shift(1).fillna(0) + 1).cumprod() * df.at[0, 'cases']
print(df)

打印:

代码语言:javascript
运行
复制
     cases  percent_change
0  100.000           0.010
1  101.000           0.000
2  101.000          -0.001
3  100.899           0.050
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62076265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档