Python 按多列筛选空
我有一个数据框,如:Python 按多列筛选空,python,pandas,metaprogramming,Python,Pandas,Metaprogramming,我有一个数据框,如: df = pd.DataFrame({'Last_Name': ['Smith', None, 'Brown'], 'First_Name': ['John', None, 'Bill'], 'Age': [35, 45, None]}) 并且可以使用以下方式手动过滤: df[df.Last_Name.isnull() & df.First_Name.isnull()] 但这很烦人,因
df = pd.DataFrame({'Last_Name': ['Smith', None, 'Brown'],
'First_Name': ['John', None, 'Bill'],
'Age': [35, 45, None]})
并且可以使用以下方式手动过滤:
df[df.Last_Name.isnull() & df.First_Name.isnull()]
但这很烦人,因为我需要为每个列/条件编写大量重复的代码。如果有大量列,则不可维护。有没有可能为我编写一个生成python代码的函数
一些背景:
我的pandas dataframe基于初始的基于SQL的多维聚合(分组集),因此某些不同的列总是空的。现在,我想有效地选择这些不同的组,并在熊猫中分别分析它们。使用
过滤器
:
df[df.filter(like='_Name').isna().all(1)]
Last_Name First_Name Age
1 None None 45.0
或者,如果需要更大的灵活性,请指定列名列表
cols = ['First_Name', 'Last_Name']
df[df[cols].isna().all(1)]
Last_Name First_Name Age
1 None None 45.0