質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

4175閲覧

globで取得したファイル名のファイルをdfに取り込みたい

middle_vill

総合スコア9

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/08/08 08:37

#実現したいこと
ディレクトリ内のすべてのcsvファイルを一つ読み込んで処理,次のファイルを読み込んで処理していきたいです.

#自分で試したこと
globでファイル名を取り込んで,dfとして取り込む際にglobで取得したファイル名を参照するようにしました.以下ソースコードです.あらかじめ各種のimportがなされているとしてください.

python3.x

1for x in glob.glob('../csvex/*.csv'): 2 print(x) 3 4 df = pd.read_csv('x', usecols=[0,1,2,3,4] , skiprows=20) 5 6 #Vmoniの検出,ここでは平均値を用いた. 7 vmoni = df['CH4'].mean() 8 9 #印加電圧v[kV] 10 v = vmoni*5 11 12 #しきい値電圧を設定して、それ以上の電圧がある行を抽出  13 v_t = vmoni * 0.8 14 df_beyondV=df.query('CH1 > @v_t') 15 16 #行の長さに時間の刻み幅を掛けてしきい値電圧を超えた時間を導出 17 pulselen = len(df_beyondV) * 8E-10 18 19 #基準の時間を定義する 20 tlim = 0.8 * t 21 22 #基準の時間としきい値電圧を超える時間の長さを比較 23 if pulselen > tlim : 24 i = 0 25 else: 26 i=1 27 28 #放電と判断したら1ずつ足していく 29 i = i+1 30 print(i) 31

#エラーメッセージ
結果以下のようなエラーが表示されます.

python3.x

1FileNotFoundError Traceback (most recent call last) 2<ipython-input-4-20aa55f0bb04> in <module> 3 7 print(x) 4 8 5----> 9 df = pd.read_csv('x', usecols=[0,1,2,3,4] , skiprows=20) 6 10 7 11 #Vmoniの検出,ここでは平均値を用いた. 8 9~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision) 10 700 skip_blank_lines=skip_blank_lines) 11 701 12--> 702 return _read(filepath_or_buffer, kwds) 13 703 14 704 parser_f.__name__ = name 15 16~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds) 17 427 18 428 # Create the parser. 19--> 429 parser = TextFileReader(filepath_or_buffer, **kwds) 20 430 21 431 if chunksize or iterator: 22 23~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds) 24 893 self.options['has_index_names'] = kwds['has_index_names'] 25 894 26--> 895 self._make_engine(self.engine) 27 896 28 897 def close(self): 29 30~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine) 31 1120 def _make_engine(self, engine='c'): 32 1121 if engine == 'c': 33-> 1122 self._engine = CParserWrapper(self.f, **self.options) 34 1123 else: 35 1124 if engine == 'python': 36 37~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds) 38 1851 kwds['usecols'] = self.usecols 39 1852 40-> 1853 self._reader = parsers.TextReader(src, **kwds) 41 1854 self.unnamed_cols = self._reader.unnamed_cols 42 1855 43 44pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__() 45 46pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source() 47 48FileNotFoundError: [Errno 2] File b'x' does not exist: b'x'

よろしくお願いします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pd.read_csvのファイル名として'x'を入れているせいだと思います。これでは文字列として扱われてしまうのでxとしてください。

投稿2019/08/08 08:45

mistn

総合スコア1191

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

middle_vill

2019/08/08 08:49

実行できました.ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問