如何用Python一行代码实现DataFrame非空判断及对应逻辑
多DataFrame空值检查的简洁实现
核心思路
将单个DataFrame的判断与处理逻辑封装为可复用的函数,再通过一行代码批量遍历所有目标DataFrame,彻底避免冗余重复代码。
实现方案
基础版(一行批量处理)
先定义处理单个DataFrame的函数,再用列表推导式完成批量操作:
import pandas as pd import numpy as np def process_single_df(df): if not df.empty: df['test_col'] = np.nan else: print('data is empty') # 假设dfs是包含所有需要处理的DataFrame的列表 [process_single_df(df) for df in dfs]
进阶版(带标识的空值提示)
如果需要明确区分哪个DataFrame为空,可以给每个DataFrame添加名称标识:
# 以(名称, DataFrame)的元组形式存储目标数据 named_dfs = [('user_df', user_df), ('order_df', order_df), ('product_df', product_df)] def process_named_df(name, df): if not df.empty: df['test_col'] = np.nan else: print(f'DataFrame [{name}] is empty') # 一行完成批量处理 [process_named_df(name, df) for name, df in named_dfs]
极简一行式(无需单独定义函数)
如果追求极致简洁,可使用lambda表达式结合map函数实现:
# dfs为目标DataFrame列表 list(map(lambda df: df.assign(test_col=np.nan) if not df.empty else print('data is empty'), dfs))
注:assign会返回新的DataFrame,若需要原地修改原DataFrame,建议使用前面的函数封装方式。
内容的提问来源于stack exchange,提问作者Zack
相关产品推荐
相关产品推荐

