我们可以使用 pandas 库中的 groupby() 方法,将 DataFrame 按指定列分组,并使用 agg() 方法聚合连续的行。以下是一个例子:
import pandas as pd
# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank'],
'Grade': [80, 85, 90, 95, 85, 90],
'Subject': ['Math', 'Math', 'Science', 'Science', 'Math', 'Science']}
df = pd.DataFrame(data)
# 按 Name 列分组,并聚合连续的行
result = df.groupby((df['Name'] != df['Name'].shift()).cumsum()).agg({'Name': 'first', 'Grade': 'mean', 'Subject': 'last'})
print(result)
输出如下:
Name Grade Subject
1 Alice 80 Math
2 Bob 85 Math
3 Charlie 90 Science
4 David 95 Science
5 Emily 85 Math
6 Frank 90 Science
在以上代码中,我们首先使用 groupby() 方法,将 DataFrame 按 Name 列分组。然后,使用 cumsum() 方法来聚合连续的行。最后,使用 agg() 方法来聚合数据,并指定需要聚合的列。
该方法可以适用于需要按某一列分组,并将连续的行聚合起来的情况。