您可以使用pandas的groupby和agg函数来按照一个列进行分组和求和,并保留所有其他列。下面是一个示例代码:
import pandas as pd
# 创建示例数据
data = {'Group': ['A', 'A', 'B', 'B', 'A'],
'Value': [1, 2, 3, 4, 5],
'Other': ['X', 'Y', 'Z', 'W', 'Q']}
df = pd.DataFrame(data)
# 按照Group列进行分组和求和,保留其他列,并创建一个新的列计算求和的行数
df_new = df.groupby('Group').agg({'Value': 'sum', 'Other': 'first'}).reset_index()
df_new['Count'] = df.groupby('Group').size().reset_index()[0]
# 打印结果
print(df_new)
输出结果为:
Group Value Other Count
0 A 8 X 3
1 B 7 Z 2
在这个示例中,我们首先创建了一个包含Group、Value和Other列的DataFrame。然后,使用groupby函数按照Group列进行分组,并使用agg函数对Value列进行求和,对Other列选择第一个值,并使用reset_index函数重置索引。最后,使用groupby和size函数计算每个分组的行数,并将结果作为新列Count添加到df_new中。