Как я могу рассчитать дельту в кадре данных? - PullRequest
1 голос
/ 18 февраля 2020
A   B   C   Delta
**1 Jan 10  0**
1   Feb 20  10
1   Mar 40  30
**2 Jan 10  0**
2   Feb 30  20
2   Mar 20  10
2   Oct 40  30
**3 Jan 10  0**
3   Feb 20  10
3   Mar 30  20
3   Oct 40  30
3   Dec 50  40

как вычислить дельта-столбец?

Я нигде не смог его найти. Пожалуйста, дайте мне знать. как рассчитать

1 Ответ

1 голос
/ 18 февраля 2020

Вычтите столбец C на Series.sub с повторными первыми значениями для групп по GroupBy.transform и GroupBy.first:

df['Delta'] = df['C'].sub(df.groupby('A')['C'].transform('first'))
print (df)
    A    B   C  Delta
0   1  Jan  10      0
1   1  Feb  20     10
2   1  Mar  40     30
3   2  Jan  10      0
4   2  Feb  30     20
5   2  Mar  20     10
6   2  Oct  40     30
7   3  Jan  10      0
8   3  Feb  20     10
9   3  Mar  30     20
10  3  Oct  40     30
11  3  Dec  50     40

Деталь :

print (df.groupby('A')['C'].transform('first'))
0     10
1     10
2     10
3     10
4     10
5     10
6     10
7     10
8     10
9     10
10    10
11    10
Name: C, dtype: int64
...