2016-08-09 23 views
2

* .csvファイルを読み込んでpandasライブラリを使って解析するクラスを作成したいと思います。私はどこdfを初期化する必要がありますかと思います。ファイルの内容を読み取るクラス

上記のコードは、'ParseDataBase' object has no attribute 'df'というエラーを返します。

私はオブジェクトを作成中に多くの変数に渡したくありません。

私はオブジェクト指向プログラミングには新しいので、どんなコメントやヒントも高く評価されています!

+1

「self.df」とは何ですか?エラーはかなり明確です、Pythonは 'self.df'が何であるかを知りません – Li357

答えて

1

def main(): 
    x = ParseDataBase('something.csv') 
    x.read_file()  
    x.dispaly_file() 
1

属性dfread_fileメソッドで割り当てられます。既存の属性にアクセスしようとしています。

私はこれを行うだろう:あなたは、あなたがされていない、read_file()を実行しない限り、あなたはself.dfを割り当てていない

#!/usr/bin/env python 
import pandas as pd 
import os 

class ParseDataBase(object): 
     def __init__(self, name_file): 
       self.name_file = name_file 
       # Change I made to initiate in the init method. 
       self.df = self.read_file() 

     def read_file(self): 
       """Read the file concent""" 

       try: 
         self.df = pd.read_csv(self.name_file) 
       except IndexError: 
         print ("Error: Wrong file name") 
         sys.exit(2) 
       return self.df 

     def dispaly_file(self): 
       print self.df 

def main(): 
     x = ParseDataBase('something.csv') 
     x.dispaly_file() 

if __name__ == '__main__': 
     main() 
+0

ありがとう!それは理にかなっている。もう一つ質問があります。私の例外エラーが間違っているようです(IndexErrorを除く:)。どうすれば私の箱にエラーが発生するのですか? 「ファイルsomething.csvが存在しません」というエラーが表示される – Monica

+0

完全なエラーは何ですか?私はそれがIOErrorだと思う。だからIOErrorを除いて。 – piRSquared

+0

はい、そうでした!あなたの助けをありがとう! – Monica

関連する問題