Pandas 分组将指定列的数据转为列表或字典

分组后转为列表

语法

        使用聚合函数,按照指定规则进行分组聚合

作用

        对【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)

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值