pandas

いつも忘れるpandas.DataFrameの備忘録

全然覚えられない。 #欠損値NaNが含まれる行/列を削除する(how="all"とすると全て欠損値の行/列を削除する。デフォルトはhow="any"。axis=1とすると列削除) result_df = df.dropna(how="all", axis=1) # DataFrameのindexを振り直すreset_index(drop=True…

ある文字列において、特定の文字がX文字以上連続した場合に限り、その連続した文字列で元の文字列を分割する

「ある文字列において、特定の文字がX文字以上連続した場合に限り、その連続した文字列で元の文字列を分割する」ことを考えた。 まずこれはどういうことか。具体例を示す。例えば、何らかのテキストファイルを1行ずつ読み込んで処理をする場合に、特定の行…

pandasのDataFrame新規作成時のエラー:If using all scalar values, you must pass an index

pandasで新規にDataFrameを作成しようとしたらエラー。 If using all scalar values, you must pass an index 問題のコードは次のようなコード。data1とdata2は数値。 df = pd.DataFrame({ 'col1':data1, 'col2':data2 }) これを次のように1つだけlistにし…

pandasメモ

#1列目取得(列番号指定) df.iloc[:, [0]] ← DataFrameで取得 df.iloc[:,1] ← Seriesで取得 #1行目取得(列番号指定) df.iloc[0,:] #1〜3行目取得 df[0:3] #データフレームdfの2列目にKeyWordが含まれるかを調べてbooleanのDataframeで返す。 df.iloc[:, [1]…

PandasのDataFrame.plot()関数で2軸グラフを描く

以前「pandas.DataFrame型のデータで2軸グラフを描く」では面倒くさい上に上手く行かなかった記憶があったが、単純な折れ線だと次のようにして描ける。 df = pd.DataFrame() df.plot(x=df['timestamp'], secondary_y=['ltp']) secondary_yを指定すれば良い。

AttributeError: 'module' object has no attribute 'BufferedIOBase'

Pythonで開発中に掲題のエラー「AttributeError: 'module' object has no attribute 'BufferedIOBase'」。 原因は・・・。 「io」という名前でパッケージを作成したこと 最初は関係無さそうということで読みとばしていたが、実は「How to solve AttributeErr…

matplotlibでpandas.DataFrameを可視化しようとしたらエラー「TclError: Can't find a usable init.tcl in the following directories:  This probably means that Tcl wasn't installed properly.」

初めて遭遇したエラーなので、少しハマった。 virtualEnvを使っていない場合は問題なかったので。エラー内容は次。 TclError: Can't find a usable init.tcl in the following directories: D:/Python27/lib/tcl8.5 D:/virtualenv/jscraping/lib/tcl8.5 D:/v…

Pandasのto_csvでCSV出力時に「UnicodeEncodeError: 'ascii' codec can't encode characters」エラー

次のように書いていてエラー。 inputDf = pd.read_csv("./result/test.csv", encoding="SJIS") 処理 inputDf.to_csv('./result/output.csv') 出力時にもencoding指定しないと駄目ですね。 次のようにして回避。 inputDf = pd.read_csv("./result/test.csv", …

pandas.DataFrame型のデータで2軸グラフを描く

仕事忙し過ぎで、JavaやらshellやらSQLやら手作業やらその他色々やり過ぎてpython久しぶり。 ※)仕事でpythonを使う機会は殆ど全く無い。゚(゚´Д`゚)゚。 殆ど忘れている。KUにCFTCの建玉を2軸グラフで重ねようと思ってちょろっとやってみた。 主に次の3つの手順…

Pythonのバックテストフレームワーク「PyAlgoTrade」を使ってみる1 〜 環境構築

ziplineのインストールで躓いて、「環境問題めんどくせーなー。とりあえず躓かないライブラリにしよう。」なんてことを思っている軟弱者です。 「Pythonのバックテストフレームワーク「zipline」を使ってみる1 〜 環境構築」で辛うじてziplineを導入出来た…

Pythonのバックテストフレームワーク「zipline」を使ってみる1 〜 環境構築

環境は次。 ・JetBrains PyCharm Community Edition 2016.2.3 ・python 2.7.12 ・zipline 1.0.2 今回実施するのは次 1.ziplineをpipを使ってインストールする 2.condaを使ってziplineをインストールする ・2−1.AnacondaからMinicondaが必要なのでイン…

pandasを使用して個別株の累積リターンと指数の累積リターンをチャートに描く

個別株の累積リターンと指数の累積リターンを同じグラフ描く。 特にコメントは無い。 #coding:utf-8 import pandas as pd import numpy as np import datetime as dt import pandas_datareader.data as pdd ######## Define Method ######## def getMultiSto…

pandasとscikits.statsmodelsを使用してリターンのOLSを求める

「pandasを使用して2つの銘柄の日次リターンの時系列相関を求める」の続きっぽいやつ。「scikits.statsmodels」が必要だったので、importした。 特にコメントは無いw。 #coding:utf-8 import pandas as pd import numpy as np import datetime as dt import…

pandasを使用して2つの銘柄の日次リターンの時系列相関を求める

ここでは「1803 清水建設」と「8698 マネックスグループ」の時系列相関を求める。移動平均やヒストリカルボラティリティを求めるのと殆ど同じ方法で求められる。 pandas.DataFrame.rollingを使用して、その結果にcorr関数を作用させるだけ。 rolling_corr = …

pandasを使用してヒストリカルボラティリティを計算する

これ、「Pythonでヒストリカルボラティリティの計算」にも書いたのとほぼ同じなので軽く流す。 shift関数使わずにpct_change関数使っている分だけ幾分簡潔になったかも。 #coding:utf-8 import pandas as pd import numpy as np import datetime as dt impor…

pandasを使用して株価の日次リターン、累積リターン、リターン分布、正規Q-Qプロットを行う

以前、Rを使って試したことと同様のことをpythonで試す。 ・「urcaパッケージを使用した定常性検定」 ・「urcaパッケージを使用した定常性検定 〜 続編」 主なお題は次。 ・日次リターンの計算 ・日次リターンから累積リターンを求める ・リターン分布を描く…

pandas.DataFrame型で保持した株価データの可視化2 〜 ローソク足の作成

「pandas.DataFrame型で保持した株価データの可視化1」の続き。株価データをローソク足で描くのが今回のテーマ。 最初にソースコードを載せて、次に解説していく。その前に今回使用する主なAPIの紹介と、それに関する注意点を述べておく。◎今回使用する主な…

pandas.DataFrame型で保持した株価データの可視化1

「pandas.DataFrame型で保持した株価データを取得する」で取得したデータを可視化する。これまで可視化は下記のエントリーで触れた。そこと重なる内容も多々あるが、復習もかねる。 ・Pythonでのプロットと可視化(matplotlib編) 〜 まとめ ・Pythonでのプ…

pandas.DataFrame型で保持した株価データを取得する

「pandasで複数銘柄の株価データ(pandas.DataFrame型)をpandas.DataFrame型で保持する」からの続き。まず、前回の復習。 前回は次のようにして、複数の株価データをpandas.DataFrame型として取得した。 #coding:utf-8 import pandas as pd import datetime…

pandasで複数銘柄の株価データ(pandas.DataFrame型)をpandas.DataFrame型で保持する

同様の内容は以前も扱った。 ・Pythonでの時系列データの扱い7 〜 まとめ(WEBからの株価データ取得、プロット、移動平均の作成) ・pandas_datareader.dataのDataReaderを使用して株価を取得する 〜 pandas.Panel型で取得したデータ構造からpandas.Panel.m…

pandasで時系列データを扱う(pandas.Seriesとpandas.DataFrameを使って時系列データを扱う)2

「pandasで時系列データを扱う(pandas.Seriesとpandas.DataFrameを使って時系列データを扱う)1」の続き。全部で下記を実施予定。 1.時系列データとDatetimeIndex 2.指定した頻度の時系列データを作成する方法 3.日付のoffsetsを使用して新しい日付…

pandasで時系列データを扱う(pandas.Seriesとpandas.DataFrameを使って時系列データを扱う)1

話題は変わるが、「pandasによるStackingとUnstacking」の続き。時系列データについては、これまで以下で扱ったので重複する部分もあると思うが反復練習ということで気にしない。 ・Pythonでの時系列データの扱い1 〜 文字列とdatetimeの変換 ・Pythonでの…

pandasによるStackingとUnstacking

「pandasによるpivot 〜 複数行に渡って重複しているデータを、重複しているデータ毎に集計する」の続き。pandas.DataFrame.stackを使うと列から行へのpivotができる。 unstackはその逆。前回使用したコードにstack部分を追加する。 #coding:utf-8 import nu…

pandasによるpivot 〜 複数行に渡って重複しているデータを、重複しているデータ毎に集計する

「pandas.DataFrameの結合」の続き。例によってAAPLとMSFTの株価データを題材に色々試す。1.株価データ取得 途中、pandas.DataFrame.insertを使用して列を追加していることに注意。 #coding:utf-8 import numpy as np import pandas as pd import datetime…

pandas.DataFrameの結合

「pandas.DataFrameの連結」の続き。pandas.mergeとpandas.concatの違いは、pandas.mergeはインデックスのラベルを使用するのではなく共通のカラムデータを元に結合すること。次のように動作する。 1.マージに使用するカラムデータが探される 2.1で探し…

pandas.DataFrameの連結

「pandas.DataFrameでのデータ作成・データへのアクセス」の続き。・株価データの取得 #coding:utf-8 import numpy as np import pandas as pd import datetime import pandas_datareader.data as pdd # 期間設定 date_from = datetime.date(2016, 9, 24) da…

数字を表す文字列の最後の1文字を置き換えて数字として計算する

完全に作業メモ用。 タイトルも意味不明だろうw。どういうことかというと、100万円を「1M円」と言ったり、1000円を「1K円」と言ったりするオジサンがいて、その人が飲み会の会計をExcelで管理している時は、金額が全てそのような表記になっているの。 で、…

Pythonでの時系列データの扱い5 〜 タイムスタンプから期間への変換

「Pythonでの時系列データの扱い4 〜 「祝日の取得」および「祝日を考慮した営業日の取得」」の続き。結論から言うと、今のところこの機能を活かす状況が分かっていないので、軽く流す。 次の流れで進める。 1.pd.date_range()でDatetimeIndexを作成する …

pythonでGoogle Calendar APIを使用して日本の祝日を取得するために、APIキーを取得する

「Pythonでの時系列データの扱い4 〜 「祝日の取得」および「祝日を考慮した営業日の取得」」で、Google Calendar APIを使用するために認証キーを取得する必要がある。 今回はこの手順をメモ。手順は下記。 1.Google Developer Consoleにアクセス 2.Goo…

Pythonでの時系列データの扱い4 〜 「祝日の取得」および「祝日を考慮した営業日の取得」

前回「Pythonでの時系列データの扱い3 〜 時系列データの頻度設定」の続き。前回、次のようなコードで月の最終営業日を取得したが、祝日が考慮されていないことが判明した(当然だが・・・)。 #coding:utf-8 import numpy as np import matplotlib.pyplot …