如何为DataFrame字典导入的for循环添加观测数筛选条件
解决方法
修正后的代码
import pandas as pd import numpy as np import glob import os # 补充原代码缺失的os模块导入 monthly_files = glob.glob("Module 6/data/Month_xx_data/*") monthly_data = {} MIN_ROWS = 50000 # 设定最小观测数阈值 for file_path in monthly_files: month = os.path.basename(file_path)[:-4] df = pd.read_csv(file_path) # 仅保留行数达标DataFrame if len(df) >= MIN_ROWS: monthly_data[month] = df # 验证筛选结果 for month, df in monthly_data.items(): print(f"{month}: {len(df)} 行")
关键修改说明
- 补全
import os:原代码调用os.path.basename但未导入模块,会触发NameError报错。 - 新增行数判断逻辑:读取DataFrame后先检查行数,仅将满足阈值要求的数据存入字典,直接过滤观测数不足的文件。
- 可选结果验证:最后循环打印保留的月份和对应行数,方便快速确认筛选是否生效。
内容的提问来源于stack exchange,提问作者Navi Mateo
相关产品推荐
相关产品推荐

