如何基于DataFrame某列唯一值迭代拆分出独立子数据集?
按月份拆分DataFrame的高效实现方法
优先采用for循环的内存友好方案
因为你希望避免子DataFrame长期驻留内存,直接在循环中处理每个月份的数据是最优选择,步骤如下:
获取所有唯一月份值
先提取DataFrame中所有不重复的月份:unique_months = df['month'].unique()循环处理每个月份的子DataFrame
遍历每个月份,筛选出对应数据后直接执行分析或保存操作,处理完后该子DataFrame会被自动回收,不会占用额外内存:for month in unique_months: # 筛选当前月份的数据 monthly_sub_df = df[df['month'] == month] # 在这里执行你的后续操作,比如: # 1. 保存为文件 monthly_sub_df.to_csv(f"{month.replace('-', '_')}_data.csv", index=False) # 2. 进行统计分析 monthly_avg = monthly_sub_df['value'].mean() print(f"月份 {month} 的value均值:{monthly_avg:.2f}") # 其他自定义分析逻辑...
可选:临时存储子DataFrame(不推荐大数据集)
如果需要临时访问各月份的子DataFrame,可以用字典存储,但这种方式会将所有子DataFrame驻留内存,仅适合小数据集:
monthly_dfs = {} for month in unique_months: monthly_dfs[month] = df[df['month'] == month] # 示例:访问10-22月份的数据 # print(monthly_dfs['10-22'])
内容的提问来源于stack exchange,提问作者vicefreak04
相关产品推荐
相关产品推荐

