在行之间移动增量

2024-05-14 08:36:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,看起来像:

Area    Sector  Date          Amt
FICC    GOV     31/01/2019    100
EQ      CORP    31/01/2019     50
FICC    GOV     31/03/2019    200
EQ      CORP    31/03/2019    100
FICC    GOV     31/12/2018     50
EQ      CORP    31/12/2018     25

我想得到基于日期的增量。所以我期望的结果是

Area    Sector  Date          Amt  Delta
FICC    GOV     31/12/2018     50
EQ      CORP    31/12/2018     25
FICC    GOV     31/01/2019    100     50
EQ      CORP    31/01/2019     50     25
FICC    GOV     31/03/2019    200    100
EQ      CORP    31/03/2019    100     50

熊猫是否有一种有效的方法来实现上述目标


Tags: 数据方法目标datearea增量eqgov
1条回答
网友
1楼 · 发布于 2024-05-14 08:36:55

sort日期,然后groupby+diff

import pandas as pd

df['Date'] = pd.to_datetime(df.Date)
df = df.sort_values('Date')
df['Delta'] = df.groupby(['Area', 'Sector']).Amt.diff()

   Area Sector       Date  Amt  Delta
4  FICC    GOV 2018-12-31   50    NaN
5    EQ   CORP 2018-12-31   25    NaN
0  FICC    GOV 2019-01-31  100   50.0
1    EQ   CORP 2019-01-31   50   25.0
2  FICC    GOV 2019-03-31  200  100.0
3    EQ   CORP 2019-03-31  100   50.0

相关问题 更多 >

    热门问题