機械学習もものきギャラリーもものきとデータ解析をはじめよう日々精進。データ解析ができるようになりたい、もものきの気まぐれ学習記録。モモノキ&ナノネと学習Pythonで時系列分析の練習(3)PandasでCSVファイルの読み込みPythonで時系列分析する手法をモモノキ&ナノネと一緒に学習していきます。時系列分析の続きを始めるね。今回もPandasのキホン的な操作で、CSVファイルの扱い方を練習するよ。ナノネ、今回使うPandasだけインポートしておいて。pdPandasでCSVファイルのデータを取り込むときは、read_csv([保存先パス]ファイル名)メソッドが使えるよ。癖のないシンプルなCSVファイルなら引数にファイル名を指定するだけで、データを取り込めるよ。CSVファイルがPython実行コードと別の場所に保存されている場合は、保存先のパスも必ず指定してね。あと、URL形式でもCSVファイルが指定できる。ネット上のファイルも簡単に取り込めて便利なんだよ。ナノネ、ローカルに読み込みテスト用のCSVファイルを一つ作ってみて。スプレットシートかテキストエディターで簡単に作れるから。読み込み練習なのでデータは適当でOKだよ。ファイルの保存場所はこのコードを動かしている場所と同じ階層に保存してね。適当なデータでCSVファイルを一つ作成。data.csvとういうファイル名で保存しといた。OK、そのCSVファイルをPandasで読み込んでみよう。Pandasはpdという名前でインポートしているからメソッドの前にpd.をつけるよ。read_csvの戻り値はDataFrame型を返すので、変数で受け取る必要があるよ。DataFrameOut[3]:pandas.core.frame.DataFrameさっき作ったCSVファイルの中身一緒だ、うまく読み込めた。注意点だけど、CSVファイルを読み込むときは文字コードの種類に注意してね。ナノネはLinuxを使っているからデフォルトの文字コードがUTF-8で、さっき作ったCSVファイルもそのまま読み込めたけど。Windowsで作った場合やネットから入手したCSVファイルなどは、文字コードがUTF-8以外のケースがあるよ。その場合はファイルの形式に合った文字コードをオプション引数で指定する必要があるよ。試しにWindowで作成したファイルを文字コード指定なしで読み込むと、こんな感じ。うまく読み取れないよ。byteWindowで普通に作成したファイルの場合、文字コードにSHIFT-JISを指定すれば問題なくデータを読み取れるよ。ナノネ癖のあるCSVを読み込むとき、どうすればいいの?ヘッダ行が無かったり、余分なヘッダが含まれている(数行目からデータが始まるなど)ケースなどがあるけど、オプション引数を設定すればうまく読み取れるよ。ナノネCSVファイルの始めに余分な行が含まれている場合は、skiprowsで読み込みをスキップしたい行数が指定できるよ。ナノネ他にも沢山のオプション引数が設定できるから、英語だけど必要に応じて公式マニュアルを調べてみてね。CSVファイルを読み込むときに設定できるの?オプション引数のindex_colにインデックスとして割り当てたいCSVデータ列を指定すればOKだよ。さっき作ったCSVの列1(列名)をインデックスに設定しみよう。インデックス列は名前か列番で指定ができるよ。index_col='列1'もしくはindex_col=0してね。列番は0から数えるから注意ね。ナノネ日付の入った列1がインデックスに設定されたみたい。これでOK?日付インデックスは、もう一つ変更の必要だよ。ナノネ、インデクスのデータ型を確認してみて。データフレーム変数名.indexで型(dtype)が確認できるよ。name='列1')dtypeがobjectになってる。ただの文字データ?時系列分析の場合はインデックスを日付型としたいので、読み込むときに事前に変換しておこう。オプション引数のparse_datesで、日付型に変換したい列をリスト形式で指定すればOKだよ。列はインデクス同様に名前か列番で指定してね。freq=None)インデックスのデータ型がdatetimeに変換できた。日付データを読み込むときは、元データの表記にも注意してね。日付データはいろいろな表記が利用されているから。Pandas(Python)の標準表記以外の場合はパースが必要なケースがあるよ。日付は年月日を-で連結したYYYY-MM-DDが標準表記。/区切りなどは自動認識してくれるみたいだけど、年月日表記などはパースが必要そう。日付をパースする方法はいろいろあるので、一例ね。オプション引数のdate_parserに日付変換用の自作関数やラムダ式を指定すると、parse_datesに指定した列の日付をうまく変換できるよ。次の例はCSVデータの日付表記が○年□月△日の場合の変換方法だよ。18datetime64[ns]○年□月△日表記もうまく日付型に変化できた。日付変換とインデックス指定を全部記載するとこんな感じ。データ値の型はdtypeで指定できるよ。時系列分析するときに必要だったね。日付2017-11-0211.02017-12-0515.02018-01-0113.02018-02-1818.0データはCSVファイルからDataFrameに取り込んだあとでも、変換や加工ができるので必要に応じてマニュアルなどを調べてみてね。次回も、Pandasのキホン的な使い方をもう少しだけ練習をするね。簡単な信号でFFTを体験してみようPythonで高速フリーエ変換(FFT)を行う方法をモモノキ&ナノネと一緒に学習していきます。簡単な信号を作って高速フーリエ変換(FFT)に挑戦してみようMatplotlibで複数のグラフを並べて描く方法データ解析を行うときはグラフで可視化、並べて関連性を確認するケースが多くあります。Pythonでデータをグラフ化する際はMatplotlibの利用が簡単で便利です。今回は複数のグラフを自由自在に配置する方法を記載します。フィルタリングでノイズを除去するPythonで高速フリーエ変換(FFT)を行う方法をモモノキ&ナノネと一緒に学習していきます。FFTとIFFTを使って信号のノイズ成分を除去してみようPythonで時系列分析の練習(7)自己相関Pythonで時系列分析する手法をモモノキ&ナノネと一緒に学習していきます。周波数ピークを自動で検出Pythonで高速フリーエ変換(FFT)を行う方法をモモノキ&ナノネと一緒に学習していきます。極大値と極小値の取得方法を覚えてピークの自動検出に挑戦しようPythonで時系列分析の練習(9)SARIMAモデルで未来予測Pythonで時系列分析する手法をモモノキ&ナノネと一緒に学習していきます。信号を時間軸と周波数軸で表現するPythonで高速フリーエ変換(FFT)を行う方法をモモノキ&ナノネと一緒に学習していきます。信号を時間軸と周波数軸でグラフに表現してみよう。Pythonで時系列分析の練習(6)トレンド、季節性、残差に分解Pythonで時系列分析する手法をモモノキ&ナノネと一緒に学習していきます。時系列分析の実践練習(トレンド、季節性、残差)Scikit-learnで機械学習(回帰分析)scikit-learnで回帰分析を行う方法です。house-prices(ボストン市の住宅価格)を利用します。house-p...Pythonで時系列分析の練習(1)モモノキ&ナノネと一緒に時系列分析を学ぼうPythonで時系列分析する手法をモモノキ&ナノネと一緒に学習していきます。