【发布时间】:2020-11-10 05:20:49
【问题描述】:
我想计算多指数 pandas df 的百分比变化。
df = pd.DataFrame(
index = pd.MultiIndex.from_product([['2020-05-01', '2020-06-01'],
['Device 1'],
['Sub Device 1', 'Sub Device 2', 'Sub Device 3'],
['New User', 'Returning User']],
names=['Month', 'Device', 'Sub Device', 'New User Ind']),
data={'Users':[1011598, 1654645, 40917, 190305, 31284,
61318, 1040834, 1577128, 29896, 156499,
29133, 59622]})
我正在寻找四个索引级别的每个组合的 pct_change。这就是我现在拥有的:
df.groupby(level=[0,1,2,3]).pct_change()
但我得到的只是用户列中的空值。
我还需要在groupby 之后添加apply 吗?
决赛桌应该是这样的
Users
Month Device Sub Device New User Ind
2020-05-01 Device 1 Sub Device 1 New User NaN
Returning User NaN
Sub Device 2 New User NaN
Returning User NaN
Sub Device 3 New User NaN
Returning User NaN
2020-06-01 Device 1 Sub Device 1 New User 0.02
Returning User -0.04
Sub Device 2 New User -0.20
Returning User -0.17
Sub Device 3 New User -0.06
Returning User -0.02
【问题讨论】:
标签: python pandas dataframe pandas-groupby multi-index