python - Pandas groupby 多列,使用 pct_change

标签 python pandas pandas-groupby

我试图找出每个独特组的 Value 的周期性增长,按(CompanyGroup , 和 日期).

Company Group Date     Value
A       X     2015-01  1
A       X     2015-02  2
A       X     2015-03  1.5
A       XX    2015-01  1
A       XX    2015-02  1.5
A       XX    2015-03  0.75
A       XX    2015-04  1
B       Y     2015-01  1
B       Y     2015-02  1.5
B       Y     2015-03  2
B       Y     2015-04  3
B       YY    2015-01  2
B       YY    2015-02  2.5
B       YY    2015-03  3

我试过:

df.groupby(['Date','Company','Group']).pct_change()

但这会返回所有 NaN。

我要找的结果是:

Company Group Date     Value/People
A       X     2015-01  NaN
A       X     2015-02  1.0
A       X     2015-03  -0.25
A       XX    2015-01  NaN
A       XX    2015-02  0.5
A       XX    2015-03  -0.5
A       XX    2015-04  0.33
B       Y     2015-01  NaN
B       Y     2015-02  0.5
B       Y     2015-03  0.33
B       Y     2015-04  0.5
B       YY    2015-01  NaN
B       YY    2015-02  0.25
B       YY    2015-03  0.2

最佳答案

您想将您的日期放入行索引并将组/公司放入列

d1 = df.set_index(['Date', 'Company', 'Group']).Value.unstack(['Company', 'Group'])
d1

enter image description here

然后使用pct_change

d1.pct_change()

enter image description here

使用分组

df['pct'] = df.sort_values('Date').groupby(['Company', 'Group']).Value.pct_change()
df

enter image description here

关于python - Pandas groupby 多列,使用 pct_change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40273251/

相关文章:

Python:快速查找充满大多数零的大型 4D 数组平均值的方法

python - 在 SQLAlchemy 中使用过滤器进行选择时出现奇怪的 SQL 错误

python - 根据列中的最高索引和值过滤数据框中的行

python - 有效日期范围单热编码 groupby

python - Keras 使用 tf.data.Dataset 预测循环内存泄漏,但不使用 numpy 数组

python - 我如何在 python selenium 中弹出确认窗口?

Python、Pandas 匹配数据框并指示列表中的结果

python - Networkx:从 Pandas DataFrame 中的距离矩阵绘制网络

python - Groupby 创建新列

python - 如何在保持 Dataframe 结构的同时计算 %