分组后转为列表
语法
使用聚合函数,按照指定规则进行分组聚合
作用
对【Group】该列进行分组,分组后将【Value1】和【Value2】分别用列表进行组合,【OtherColumn】取第一个值
效果
代码
import pandas as pd
# 创建一个示例DataFrame
data = {
'Group': ['A', 'A', 'B', 'B', 'A'],
'Value1': [1, 2, 3, 4, 5],
'Value2': [10, 20, 30, 40, 50],
'OtherColumn': ['X', 'Y', 'X', 'Y', 'Z']
}
df = pd.DataFrame(data)
# 定义如何对每列进行聚合,例如Value1和Value2列聚合成列表,OtherColumn取第一个值
agg_functions = {
'Value1': list,
'Value2': list,
'OtherColumn': 'first'
}
# 使用groupby和指定的聚合函数对DataFrame进行分组聚合
grouped_df = df.groupby('Group').agg(agg_functions).reset_index()
print(grouped_df)
分组后转为字典
语法
使用聚合函数,按照指定规则进行分组聚合
作用
对【Group】该列进行分组,分组后将【Value1】和【Value2】分别用列表进行组合,【AnotherCol】和【SampleCol】分别用字典进行组合
效果
代码
data = {
'Group': ['A', 'A', 'B', 'B', 'A'],
'Value1': [1, 2, 3, 4, 5],
'Value2': [10, 20, 30, 40, 50],
'AnotherCol': ['X', 'Y', 'Z', 'W', 'V'],
'SampleCol': ['A1', 'A2', 'B1', 'B2', 'A3']
}
df = pd.DataFrame(data)
# 定义一个函数,将一系列值转换为字典
def to_dict(series):
return series.to_dict()
# 对特定列执行列表聚合,对其余列进行to_dict聚合
agg_functions = {
'Value1': list,
'Value2': list,
'AnotherCol': to_dict,
'SampleCol': to_dict
}
# 使用groupby和指定的聚合函数对DataFrame进行分组聚合
grouped_df = df.groupby('Group').agg(agg_functions).reset_index()
print(grouped_df)