我有下面这样的数据帧,我想使用python函数有效日期平移编号
Name PAN
0 x BBDFW7894Q
1 s
2 A QWE7892E
我想要一个函数,如果PAN为空/无效,则返回PAN不存在,对于有效的PAN号码返回True我想要两个df,如果为True,那么df_pass else df_faildf_pass=
Name PAN
0 x BBDFW7894Q
df_fail=
Name PAN
1 s
2 A QWE7892E
我试试
def validate_pan_number(value):
for i in Pan(value.columns):
if re.match(r'^[A-Z]{5}[0-9]{4}[A-Z]$',):
return True
else:
return (value,'is not valid PAN number')
但这对空白值不起作用
您可以使用np.where
:
df['valid'] = np.where(df.PAN.str.contains(r'^[A-Z]{5}[0-9]{4}[A-Z]$', regex=True), 'Valid PAN' ,'is not valid PAN number')
OUTPUT
:
Name PAN valid
0 x BBDFW7894Q Valid PAN
1 s None is not valid PAN number
2 A QWE7892E is not valid PAN number
稍后您可以基于有效列filter
:
要通过您可以使用的功能扩展有效/无效的平移数据帧:
def extract_pans(df, valid = True): # default value true
m = df.PAN.str.contains(r'^[A-Z]{5}[0-9]{4}[A-Z]$').fillna(False)
if valid:
return df.loc[m]
return df.loc[~m]
invalid_pans_df = extract_pans(df, valid=False)