我有一个数据帧,我需要创建另一个数据框架,该数据框架将只包括特定列上丢失的记录。
"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