为了账号安全,请及时绑定邮箱和手机立即绑定

验证熊猫数据框列

验证熊猫数据框列

qq_笑_17 2021-08-17 15:46:38
我有一个列如下的数据框 -u'wellthie_issuer_identifier', u'issuer_name', u'service_area_identifier', u'hios_plan_identifier', u'plan_year', u'type'我需要验证每一列中的值,最后有一个有效的数据框。例如,我需要检查plan_year列是否满足以下验证presence: true, numericality: true, length: { is: 4 }hios_plan_identifier 列满足以下正则表达式。          format: /\A(\d{5}[A-Z]{2}[a-zA-Z0-9]{3,7}-TMP|\d{5}[A-Z]{2}\d{3,7}(\-?\d{2})*)\z/,           presence: true, length: { minimum: 10 },type 列包含,in: ['MetalPlan', 'MedicarePlan', 'BasicHealthPlan', 'DualPlan', 'MedicaidPlan', 'ChipPlan']有很多列需要验证。我试图给出一个示例数据。我可以用 s 检查正则表达式tr.contains('\A(\d{5}[A-Z]{2}[a-zA-Z0-9]{3,7}-TMP|\d{5}[A-Z]{2}\d{3,7}(\-?\d{2})*)\Z', regex=True)同样,我也可以单独检查其他验证。我对如何将所有验证放在一起感到困惑。我应该把所有的都放在一个有条件的if循环中and吗?有没有一种简单的方法来验证数据框列?在这里需要帮助
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您可以使用多种 Pandas 函数。基本上,您可以用来按内容过滤数据框的语法是:


df = df[(condition1) & (condition2) & ...] # filter the df and assign to the same df

专门针对您的情况,您可以替换condition为以下函数(表达式):


df[some_column] == some_value 

df[some_column].isin(some_list_of_values) # This check whether the value of the column is one of the values in the list

df[some_column].str.contains() # You can use it the same as str.contains()

df[some_column].str.isdigit() # Same usage as str.isdigit(), check whether string is all digits, need to make sure column type is string in advance

df[some_column].str.len() == 4 # Filter string with length of 4

最后,如果要重置索引,可以使用df = df.reset_index(drop=True)将输出 df 索引重置为 0,1,2,...


编辑:要检查您可以使用的 NaN、NaT、None 值


df[some_column].isnull()

对于多列,您可以使用


df[[col1, col2]].isin(valuelist).all(axis=1)


查看完整回答
反对 回复 2021-08-17
  • 1 回答
  • 0 关注
  • 144 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号