【发布时间】:2022-11-29 00:21:14
【问题描述】:
我已经计算了数据框中分组 ID 的两个月值之间的差异,我现在刚开始计算差异百分比,但在我使用 .pct_change() 的所有尝试中都收到了键盘错误或“NaN”。
我的 datafrane 构造如下;
| ID | MONTH | TOTAL | Variance |
|---|---|---|---|
| REF1 | 1 | 55 | 0 |
| REF1 | 2 | 65 | 10 |
| REF1 | 3 | 66 | 1 |
| REF2 | 7 | 65 | -15 |
| REF2 | 6 | 80 | 10 |
| REF2 | 8 | 100 | 35 |
我现在需要添加另一列来描述上个月之间的差异百分比。
df_all = (
pd.concat(pd.read_excel("testdata.xlsx",
header=None, sheet_name=None), ignore_index=True)
.T.set_index(0).T
.rename_axis(None, axis=1)
.loc[:, ["ID", "DATE", "TOTAL"]]
.assign(MONTH= lambda x: x["DATE"].dt.month)
.groupby(by=["ID", "MONTH"], as_index=False).agg({"TOTAL":sum})
)
df_all['Variance'] = df_all['TOTAL'].sub(
df_all[['ID', 'MONTH']]
.merge(df_all.assign(MONTH=df_all['MONTH'].add(1)),
how='left')['TOTAL']
)
df_all['Variance'].fillna(0, inplace=True)
【问题讨论】:
-
向我们展示您的代码
-
添加了我创建数据框的代码
标签: pandas dataframe calculation