* .csvファイルを読み込んでpandasライブラリを使って解析するクラスを作成したいと思います。私はどこdfを初期化する必要がありますかと思います。ファイルの内容を読み取るクラス
上記のコードは、'ParseDataBase' object has no attribute 'df'
というエラーを返します。
私はオブジェクトを作成中に多くの変数に渡したくありません。
私はオブジェクト指向プログラミングには新しいので、どんなコメントやヒントも高く評価されています!
* .csvファイルを読み込んでpandasライブラリを使って解析するクラスを作成したいと思います。私はどこdfを初期化する必要がありますかと思います。ファイルの内容を読み取るクラス
上記のコードは、'ParseDataBase' object has no attribute 'df'
というエラーを返します。
私はオブジェクトを作成中に多くの変数に渡したくありません。
私はオブジェクト指向プログラミングには新しいので、どんなコメントやヒントも高く評価されています!
。
def main():
x = ParseDataBase('something.csv')
x.read_file()
x.dispaly_file()
属性df
がread_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()
ありがとう!それは理にかなっている。もう一つ質問があります。私の例外エラーが間違っているようです(IndexErrorを除く:)。どうすれば私の箱にエラーが発生するのですか? 「ファイルsomething.csvが存在しません」というエラーが表示される – Monica
完全なエラーは何ですか?私はそれがIOErrorだと思う。だからIOErrorを除いて。 – piRSquared
はい、そうでした!あなたの助けをありがとう! – Monica
「self.df」とは何ですか?エラーはかなり明確です、Pythonは 'self.df'が何であるかを知りません – Li357