首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法可以跳过使用Pandas pct_change()函数的观察?

是否有一种方法可以跳过使用Pandas pct_change()函数的观察?
EN

Stack Overflow用户
提问于 2022-09-12 16:46:35
回答 1查看 31关注 0票数 1

看看这些,他们并没有真正回答我的问题:

我有一个很大的DataFrame,并且希望计算每一列的pct_change()。我希望结果跳过nan值,这样它就相当于:

代码语言:javascript
运行
复制
for i in df.columns:
    _pct = df[i].dropna().pct_change()

然后,对于原始值为nan的行,pct_change()值也将是nan。换句话说,如果我有:

代码语言:javascript
运行
复制
price = [1, nan, 1.1, 1.155, nan, 1.0395]

我要:

代码语言:javascript
运行
复制
pct_change = [nan, nan, 0.1, 0.05, nan, -0.1]

是否有内置的方法来完成此操作,还是必须创建自己的循环来完成,即遍历每一列,执行pct更改,然后将值替换为nan?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-12 16:53:46

我认为您可以在列中使用pct_change,然后屏蔽这些单元格,如下所示

代码语言:javascript
运行
复制
df.pct_change().where(df.notna())

举例说明:

代码语言:javascript
运行
复制
nan = np.nan
df = pd.DataFrame({
    'price': [1, nan, 1.1, 1.155, nan, 1.0395],
    'price2': [1, nan, nan, 1.155, nan, 1.0395]
})
print(df.pct_change().where(df.notna()))
#    price  price2
# 0    NaN     NaN
# 1    NaN     NaN
# 2   0.10     NaN
# 3   0.05   0.155
# 4    NaN     NaN
# 5  -0.10  -0.100
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73692605

复制
相关文章

相似问题

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