如何验证Panda数据帧中的Pan卡号



我有下面这样的数据帧,我想使用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)

最新更新