Чтобы выполнить операцию группировки над DataFrame и одновременно получить сумму сгруппированных значений, а также список сгруппированных элементов, вы можете использовать различные методы Python. Вот несколько подходов:
Метод 1: использование функции agg()
import pandas as pd
# Create a DataFrame
df = pd.DataFrame({'Category': ['A', 'A', 'B', 'B', 'B'],
'Value': [10, 20, 30, 40, 50]})
# Groupby and obtain sum and list
result = df.groupby('Category').agg({'Value': ['sum', list]})
print(result)
Метод 2. Использование функции apply()
import pandas as pd
# Create a DataFrame
df = pd.DataFrame({'Category': ['A', 'A', 'B', 'B', 'B'],
'Value': [10, 20, 30, 40, 50]})
# Define a custom function
def sum_and_list(x):
return pd.Series([x.sum(), x.tolist()], index=['Sum', 'List'])
# Groupby and apply the custom function
result = df.groupby('Category')['Value'].apply(sum_and_list).unstack()
print(result)
Метод 3: использование комбинации groupby(), sum() и agg()
import pandas as pd
# Create a DataFrame
df = pd.DataFrame({'Category': ['A', 'A', 'B', 'B', 'B'],
'Value': [10, 20, 30, 40, 50]})
# Groupby, sum, and collect as list
result = df.groupby('Category')['Value'].agg([('Sum', 'sum'), ('List', list)])
print(result)