如何用Python筛选字典中DataFrame的favorite color为NaN的行并导出Excel
解决方案:筛选DataFrame中指定列值为NaN的行并导出到Excel
完整代码
import pandas as pd # 文件路径 my_file_path = r'C:\Users\machukovich\Desktop\stack.xlsx' # 加载Excel为DataFrame字典,跳过前2行 my_dict = pd.read_excel(my_file_path, sheet_name=None, skiprows=2) # 创建筛选后的结果字典 filtered_dict = {} for sheet_name, df in my_dict.items(): # 筛选"favourite color"列值为NaN的行 filtered_df = df[df['favourite color'].isna()] filtered_dict[sheet_name] = filtered_df # 将筛选结果写入新Excel文件 output_file = r'C:\Users\machukovich\Desktop\filtered_stack.xlsx' with pd.ExcelWriter(output_file) as writer: for sheet_name, filtered_df in filtered_dict.items(): filtered_df.to_excel(writer, sheet_name=sheet_name, index=False)
关键说明
- 筛选逻辑:用
df['favourite color'].isna()判断指定列是否为缺失值(NaN),返回布尔索引后筛选出目标行。注意列名要和原数据完全一致(这里是英式拼写favourite color)。 - 多工作表写入:使用
pd.ExcelWriter上下文管理器,循环将每个筛选后的DataFrame写入对应名称的工作表,index=False避免把原DataFrame的索引写入Excel。 - 简化依赖:无需额外导入openpyxl、xlsxwriter等库,Pandas默认的ExcelWriter已支持多工作表操作,除非你需要特定格式需求。
验证结果
运行后得到的filtered_dict就是你期望的结构,同时会在指定路径生成包含筛选结果的新Excel文件,每个工作表对应原表中favourite color为NaN的行。
内容的提问来源于stack exchange,提问作者machukovich
相关产品推荐
相关产品推荐

