python-3.x - Pandas groupby.pct_change() 仅返回 0 和 nan
问题描述
我有一个数据集:
month country user
2018-01 DE 182503
2018-02 DE 168962
2018-03 DE 175043
2019-01 DE 158797
2019-01 DE 226209
我想查看连续行中的百分比变化,我正在使用pct_change()
它,但我的输出仍然只包含 nan 或 0 或 -0。我想创建一个新列“pct_change”并将百分比变化存储到其中。
我的用户列是浮点类型。
截至目前,我的输出看起来像这样
month country user pct_change
2018-01 DE 182503 nan
2018-02 DE 168962 -0
2018-03 DE 175043 0
我正在使用以下代码:
df['pct_change'] = df.groupby(['country'])['user'].pct_change()
为什么我没有看到正确的结果?
解决方案
这只是一个四舍五入的问题吗?
pd.options.display.float_format = '{:,.4f}'.format
df['pct_change'] = df.groupby(['country'])['user'].pct_change()
df
Out[101]:
month country user pct_change
0 2018-01 DE 182503 NaN
1 2018-02 DE 168962 -0.0742
2 2018-03 DE 175043 0.0360
推荐阅读
- utf-8 - 我可以在 Thunderbird 中过滤解码的 UTF-8/Base64 吗?
- quartz.net - Quarz.NET 抛出 Unexpected end of expression
- sharepoint - 如何创建一个文件夹来存储 Sharepoint Online 中的所有列表?
- jquery - 从返回空字符串的模态输入中获取值
- python-3.x - 混合相对和绝对进口
- java - 如何跟踪在多个服务器中运行的异步任务的进度状态
- python - 遍历给定的数据框
- node.js - React & Express 服务器在生产 /build 中没有收到 api 请求
- ruby-on-rails - 评论部分将最新的评论排序在顶部而不是底部
- vuex - 从另一个文件 nuxt 提交突变