Pandas Groupby使用报错:'DataFrameGroupBy'无to_csv属性求助
问题解决:DataFrameGroupBy对象无to_csv方法
报错原因
result.groupby('Job ID')得到的是DataFrameGroupBy类型的对象,它是Pandas用于分组操作的中间容器,并不是可直接导出的DataFrame,因此没有to_csv方法。
解决方案
根据你的实际需求选择对应处理方式:
1. 保留分组后的所有原始数据并导出
如果你只是想按Job ID分组后保留每组的所有行数据,只需将分组对象转换为DataFrame即可:
import pandas as pd path1 = "/content/NYC_Jobs_1.csv" path2 = "/content/NYC_Jobs_2.xlsx" df1 = pd.read_csv(path1) df2 = pd.read_excel(path2) result = df1.merge(df2,on="Job ID",how='outer') # 将分组对象转换为DataFrame并重置索引 grouped_df = result.groupby('Job ID').apply(pd.DataFrame).reset_index(drop=True) # 导出CSV文件 grouped_df.to_csv('NYC.csv', index=False)
2. 先聚合分组数据再导出
如果你的目标是对每组数据做统计(比如取第一条数据、求和、均值等),先执行聚合操作得到DataFrame再导出:
import pandas as pd path1 = "/content/NYC_Jobs_1.csv" path2 = "/content/NYC_Jobs_2.xlsx" df1 = pd.read_csv(path1) df2 = pd.read_excel(path2) result = df1.merge(df2,on="Job ID",how='outer') # 示例1:按Job ID分组,取每组的第一条数据 grouped_agg = result.groupby('Job ID').first().reset_index() # 示例2:按Job ID分组,对数值列求和 # grouped_agg = result.groupby('Job ID').sum(numeric_only=True).reset_index() # 导出CSV文件 grouped_agg.to_csv('NYC.csv', index=False)
补充提示
如果不需要分组后的特殊处理,只是想按Job ID排序后导出,直接用result.sort_values('Job ID').to_csv('NYC.csv', index=False)即可,无需使用groupby。
内容的提问来源于stack exchange,提问作者gd6noob
相关产品推荐
相关产品推荐

