groupby函数获取每个组中的最后一个值 - Python
在Python中,pandas库提供了一个非常方便的函数 - groupby函数,用于将数据根据指定的一列或多列分组,并对每个组进行各种操作。其中,nth函数可以用来获取每个组中的指定位置上的值。
但有时候我们需要获取的是每个组中的最后一个值,该怎么办呢?这里介绍一个小技巧,即将获取最后一个值的问题转换为获取倒数第二个值,再用head(1)函数进行筛选。
下面是一个简单的示例代码:
import pandas as pd
# 创建示例数据
data = {'group': ['A', 'A', 'B', 'B', 'B', 'C'],
'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 获取每个组的最后一个值
last_vals = df.groupby('group').nth(-2).reset_index(drop=True)
last_vals = last_vals.groupby('group').head(1).reset_index(drop=True)
print(last_vals)
运行结果如下:
group val