猿问

在 Pandas 中找出并记录失败的验证条件

我有一个数据框 df,


      plan_year                                    name metal_level_name

0        20118            Gold Heritage Plus 1500 - 02             Gold

1         2018                                     NaN         Platinum

2         2018            Gold Heritage Plus 2000 - 01             Gold

我已经把数据验证上plan_year和name列下面喜欢,


m4 = ((df['plan_year'].notnull()) & (df['plan_year'].astype(str).str.isdigit()) & (df['plan_year'].astype(str).str.len() == 4))


m1 = (df1[['name']].notnull().all(axis=1))

我得到了下面的有效数据框,


df1 = df[m1 & m4]

我可以获得 df1 中不存在的行(无效的行)


merged = df.merge(df1.drop_duplicates(), how='outer', indicator=True)

merged[merged['_merge'] == 'left_only']

我想跟踪哪一行由于哪项验证而失败。


我想获得一个包含所有无效数据数据框的数据框,如下所示 -


 plan_year                                    name metal_level_name    Failed message

0        20118            Gold Heritage Plus 1500 - 02             Gold    Failed due to wrong plan_year

1         2018                                     NaN         Platinum     name column cannot be null

有人可以帮我解决这个问题吗?


肥皂起泡泡
浏览 112回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答