Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 模块';自我';没有属性';文件';类格式错误_Python_Pandas_Self - Fatal编程技术网

Python 模块';自我';没有属性';文件';类格式错误

Python 模块';自我';没有属性';文件';类格式错误,python,pandas,self,Python,Pandas,Self,我正在构建一个python代码,以使用pandas验证给定CSV文件中的电子邮件地址和电话号码,并且我想编写一个单独的CSV文件,其中只包含验证过的值。我对python完全陌生,我已经为该功能编写了如下代码: from email_validator import validate_email, EmailNotValidError import pandas as pd import re file = r'sample.csv' filtered = r'filtered.csv' val

我正在构建一个python代码,以使用pandas验证给定CSV文件中的电子邮件地址和电话号码,并且我想编写一个单独的CSV文件,其中只包含验证过的值。我对python完全陌生,我已经为该功能编写了如下代码:

from email_validator import validate_email, EmailNotValidError
import pandas as pd
import re

file = r'sample.csv'
filtered = r'filtered.csv'
valid = r'Valid.csv'
df=pd.read_csv(file)

def eVali(dataFrame):
    try:
        validate_email(dataFrame)                 
        return True
    except EmailNotValidError:
        return False


def phoneValid(dataFrame):
    if re.search("\w{3}-\w{3}-\w{4}",dataFrame):
        return True
    else:
        return False

df["Email_validate"] = df['email'].apply(eVali)

df_fltrd = df[df['Email_validate']]
#del df_fltrd['Email_validate']
print(df_fltrd)

df_fltrd["Phone_validate"] =df_fltrd['phone'].apply(phoneValid)

df_valid = df_fltrd[df_fltrd["Phone_validate"]]
del df_valid["Phone_validate", "Email_validate"]
print(df_valid)

df_fltrd.to_csv(filtered)
df_valid.to_csv(valid)
这段代码运行良好,我可以根据需要创建一个带有验证值的新CSV。但是当我试图用正确的方法将代码组织为一个正确的类时,它给出了一个错误提示

Traceback (most recent call last):
  File "E:\myTasks\validator.py", line 7, in <module>
    class Validator:
  File "E:\myTasks\validator.py", line 47, in Validator
    validation(self.file)
AttributeError: module 'self' has no attribute 'file'

谁能帮我一下吗。非常感谢。提前谢谢

嗯,您不能从类本身调用实例方法

validation(self) 
该位应该在类之外,例如,可以在实例化验证器对象后从主函数调用它

my_validator = Validator()
my_validator.validation()

嗯,您不能从类本身调用实例方法

validation(self) 
该位应该在类之外,例如,可以在实例化验证器对象后从主函数调用它

my_validator = Validator()
my_validator.validation()
你不需要自我介绍。 self是代码执行时所处的实例

你的问题是你还不了解课程。您试图在类中调用python不喜欢的类方法

我建议你看看和/或

要将最后一行推到末尾并添加

def main():
    i = Validator()
    i.validation()

if __name__ == "__main__":
    main()
你不需要自我介绍。 self是代码执行时所处的实例

你的问题是你还不了解课程。您试图在类中调用python不喜欢的类方法

我建议你看看和/或

要将最后一行推到末尾并添加

def main():
    i = Validator()
    i.validation()

if __name__ == "__main__":
    main()

看看这里:请验证我的答案是否有效谢谢@Raphael St的快速回复!它是这样工作的!!!非常感谢你。投票通过并被接受为答案!:)看看这里:请验证我的答案是否有效谢谢@Raphael St的快速回复!它是这样工作的!!!非常感谢你。投票通过并被接受为答案!:)感谢您的快速回复和考虑。我真的很感激。向上投票!感谢您的快速回复和考虑。我真的很感激。向上投票!