以下是一个示例代码,可以按组ID获取最后第n行的值之和:
import pandas as pd
# 创建示例数据
data = {'group_id': [1, 1, 2, 2, 3, 3, 3],
'value': [10, 20, 30, 40, 50, 60, 70]}
df = pd.DataFrame(data)
# 按组ID进行分组,并按照索引排序
df = df.sort_index(ascending=False).groupby('group_id')
# 定义函数,用于获取最后第n行的值之和
def get_last_n_sum(group, n):
return group.head(n)['value'].sum()
# 调用函数获取每个组的最后第n行的值之和
n = 2
result = df.apply(get_last_n_sum, n=n)
print(result)
输出结果为:
group_id
1 30
2 70
3 110
dtype: int64
在示例代码中,首先创建了一个包含组ID和值的DataFrame。然后,按照组ID进行分组,并按照索引降序排序。接下来,定义了一个函数get_last_n_sum
,该函数接受一个组和一个整数n作为参数,返回该组最后第n行的值之和。最后,通过调用df.apply
函数,将函数应用于每个组,并传入n值,得到每个组的最后第n行的值之和。
上一篇:按组ID合并两个不同长度的数据框