通过包含空值的列表筛选panda数据帧



我有一个数据帧,我需要创建另一个数据框架,该数据框架将只包括特定列上丢失的记录。

"Missing"表示它可以是空的、"N/A"、"NODATA",或者在某些情况下是其他固定值(我需要一个函数,这样我就可以简单地传递一个适合这种情况的列表(。

我可以根据值对其进行过滤,这样就可以找到N/As和NODATA记录,但它看不到空的记录。

我尝试了多种方法,有可能以这种方式做到这一点吗(因此空值是列表的一部分(,或者我需要单独过滤空值并将其合并到列表中吗?

def GetEmpty(df, on, items_list=['']):
column = df[on]
boolean_series = column.isin(items_list)
empty_df = df[boolean_series]
return empty_df
empty_df = GetEmpty(df, 'Isin', ['','N/A', 'NODATA'])

编辑:数据帧:

System Book    Isin ID
0    ABC  DEF     XYZ  A
1    ABC  DEF     NaN  B
2    ABC  DEF     ABC  C
3    ABC  DEF  NODATA  D

如果我理解正确,你要检查它是否为空(即:Python的None或Numpy.NaN(,并检查它是否是这些特殊值之一-空字符串("(,";N/A";,或";NODATA";。

Pandas有一个名为isull((的内置函数,用于检查None或np.NaN.

所以,你可以做这样的事情。。。

import pandas as pd
def GetEmpty(df, on, items_list=['']):
boolean_series = df.apply(lambda x: True if ((pd.isnull(x[on])) or (x[on] in items_list)) else False, axis=1)
empty_df = df[boolean_series]
return empty_df

最新更新