首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pandas pct_change中的替代方案

pandas pct_change中的替代方案
EN

Stack Overflow用户
提问于 2020-08-07 23:27:24
回答 1查看 136关注 0票数 0

我正在尝试使用pandas pct_change作为运行百分比更改。即作为第一行的百分比变化的每一行。当它被使用时,pct_change会提供NAs,直到满足该周期(比如10)。有没有办法覆盖NAs?(不寻找fill方法,因为它填充集合中的空数据,我希望在pct_change数据本身中填充NAs )

代码语言:javascript
运行
复制
In [2]: import pandas as pd

In [3]: import datetime as dt

In [4]: df = pd.DataFrame([2,2.5,3.5,5],[dt.date(2020,8,1),dt.date(2020,8,2),dt.date(2020,8,3),dt.date(2020,8,4)])

In [5]: df[1] = df[0].pct_change(3)

In [6]: df
Out[6]: 
              0    1
2020-08-01  2.0  NaN
2020-08-02  2.5  NaN
2020-08-03  3.5  NaN
2020-08-04  5.0  1.5

我想:

8-2填充为.25 -- (2.5-2)/2 &

8-3填充为.75 -- (3.5-2)/2

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-08-08 13:54:45

只需将第一行的值复制到临时列中,然后自己计算即可。

代码语言:javascript
运行
复制
df = pd.DataFrame([2,2.5,3.5,5],[dt.date(2020,8,1),dt.date(2020,8,2),dt.date(2020,8,3),dt.date(2020,8,4)])
df = df.assign(
    first=df.iloc[0,0],
    pct_cng=lambda dfa: abs(dfa[0] - dfa["first"])/2
).drop("first", axis=1)

输出

代码语言:javascript
运行
复制
              0  pct_cng
2020-08-01  2.0     0.00
2020-08-02  2.5     0.25
2020-08-03  3.5     0.75
2020-08-04  5.0     1.50
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63304813

复制
相关文章

相似问题

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