为何使用Pandas groupby处理Courses列时返回对象地址而非数据?
为什么Pandas groupby返回对象地址而非分组数据?
你看到的<pandas.core.groupby.generic.DataFrameGroupBy object at ...>是正常现象——Pandas的groupby方法本身不会直接生成分组后的数据集,它返回的是一个DataFrameGroupBy对象,这个对象只是存储了分组规则和对原DataFrame的引用,并没有立即执行分组后的计算或数据提取操作。
要得到你预期的分组数据,需要对这个分组对象执行后续操作,以下是几种常用方法:
1. 遍历分组查看每个组的内容
用for循环遍历分组对象,每次迭代会得到组名和对应的组DataFrame:
for course_name, group_df in df2: print(f"组名: {course_name}") print(group_df) print("---")
2. 转换为列表查看所有组
把分组对象转成列表,会得到每个组的(组名, 组DataFrame)元组:
group_list = list(df2) print(group_list)
3. 执行聚合操作得到汇总结果
如果需要分组后的统计数据,可以调用聚合函数(如sum()、mean()、count()):
# 计算每个课程的费用总和 fee_sum = df2['Fee'].sum() print(fee_sum) # 自定义聚合,同时计算费用均值和折扣总和 agg_result = df2.agg({'Fee': 'mean', 'Discount': 'sum'}) print(agg_result)
4. 提取单个组的数据
用get_group()方法直接取出指定组的所有行:
# 获取Spark课程的分组数据 spark_group = df2.get_group('Spark') print(spark_group)
内容的提问来源于stack exchange,提问作者Yoster Daniel
相关产品推荐
相关产品推荐

