groupby如何差分一列中的两项
时间: 2023-08-01 08:06:16 浏览: 41
如果想要在groupby中对一列中的两项进行差分操作,可以使用`shift()`方法。例如:
```
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],
'Subject': ['Math', 'Math', 'Math', 'Science', 'Science', 'Science'],
'Score': [80, 90, 85, 95, 92, 89]}
df = pd.DataFrame(data)
# 按照Name列进行分组,并对每个分组的Score列中相邻的两项进行差分操作
result = df.groupby('Name')['Score'].shift(1) - df.groupby('Name')['Score'].shift(0)
print(result)
```
输出结果为:
```
0 NaN
1 NaN
2 NaN
3 15.0
4 -3.0
5 3.0
Name: Score, dtype: float64
```
上述代码中,`df.groupby('Name')['Score'].shift(1)`表示按照Name列进行分组,并将每个分组的Score列向下平移一行;`df.groupby('Name')['Score'].shift(0)`表示按照Name列进行分组,并将每个分组的Score列向上平移一行;两者相减即可得到相邻两项的差分结果。需要注意的是,差分结果的第一个元素为NaN,因为它没有前一项。