我有一个熊猫数据框,如:
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数据框基于初始的基于SQL的多维聚合(分组集)https://jaceklaskowski.gitbooks.io/mastering-spark-sql/spark-sql-multi-dimensional-aggregation.html,因此,总是有一些不同的列为NULL。现在,我想有效地选择这些不同的组,并分别对它们进行分析。
答案 0 :(得分:2)
使用filter
:
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