Dive into hoge

データ分析関連の備忘録

pandas

pandas操作⑧:queryに変数を指定する場合

queryで条件指定にリストを使いたくて、生のリストではなく変数を入れたい場合。 # tmpはリスト 何らかのデータフレーム.query('カラム名==tmp') そのまま変数入れるとエラーになる。 UndefinedVariableError: name 'tmp' is not defined 下記のように変数の…

pandas操作⑦:列表示

列が省略されるときに全表示させたい デフォルトは20らしいので好きな数値に変更する。 # pandasの表示列数設定 pd.set_option('display.max_columns',65) レコード毎にmaxの列番号を抽出したい 最大値の列番号をmax列に突っ込む。 # DataFrameでレコード毎…

pandas操作⑥:横持ち変換

縦持ち(レコード形式)から横持ち(表形式)への変換をするとき、スマートではないのはわかっていたけどSQLで横持ち変換したい値に応じたcase文をシコシコ書いていた。値が増えたりしたときにまた書き換える必要あるのでこれはクソなコードである。pythonに…

pandas操作⑤:複数条件で抽出

複数条件でpandasから抽出したいときに下記エラー。 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 各条件は丸括弧で括って、かつアンド条件のときはandではダメで&を使わないといけない。 …

pandas操作④:結合(concat)、いらない行除外、インデックス振り直し、カウントして確認

①いくつか作ったDataFrameを統合して、 ②ある条件に合致するいらない行以外を抽出して、 ③インデックスが飛び飛びになっているから振り直しして、 ④最後にカウント import pandas as pd test = pd.concat([hoge1, hoge2, hoge3, hoge4]) #① test = test[test…

pandas操作③:作業ディレクトリ確認・変更、エンコード失敗したとき

何かファイルを読み取ってDataFrameに入れたいとき、どこが作業ディレクトリだろう、という場合。 import os os.getcwd() で、これを変えたい場合は下記。 os.chdir('変更したいフォルダへのパス') これをread_csvやread_tableとかで読み取って import panda…

sklearn.metrics.f1_scoreでエラーが出るとき

from sklearn.metrics import f1_score f1_score(検証データ, 予測データ) 上記モデル検証でF-score出すときに下記エラーが出た。ValueError: pos_label=1 is not a valid label: array([ 0., 21.])多分ラベルがだめってことなんだろうけど確認する(jupyter…

EC2にsshで接続しているときのタイムアウトを防止する

EC2にssh接続してPython環境を利用している場合、ちょっと処理に時間がかかっていると接続がきれてしまう。これを回避するためにには~/.ssh/configに"ServerAliveInterval 60"と書き込む。でも操作に慣れていないと毎回忘れるので備忘として下記のステップで…

pandas操作②:arrayから変換、カラム名をコピーから作成

よく忘れるので備忘2。 arrayをDataFrameに変換したいとき 単純にDataFrameにつっこむだけ。 import numpy as np import pandas as pd a = np.array([[1,2,3], [4,5,6]]) df_a = pd.DataFrame(a) 一応記載すると、df_aは下記のようになる 0 1 2 0 1 2 3 1 4…

ローカルでの処理結果をRedshiftに入れる

spark使わないでローカルで素朴にやる時の方法 sparkのpipeline使えば入出力は簡単だけど、まだ使い方がわからない…けどsklearn使えばローカル環境で色々できるんだオレは!というヒト向けに、下記のRedshiftに接続してデータ受け取ってPandasに入れるやつの…

Tableauで2軸グラフ(ヒストグラム&累積%線グラフ)

dev.classmethod.jp

欠損値を0で埋める

データフレームはすでに作っていて欠損値NaNが入っている前提。 import numpy as np df = df.replace(np.NaN,0)

redshiftからデータ読み込んでpandasのデータフレームに入れる

まずはRedshiftに接続する。 import psycopg2 import redshift_sqlalchemy from sqlalchemy import create_engine engine = create_engine('{dialect}+{driver}://{user}:{pwd}@{url}:{port}/{db}'.format( dialect = 'redshift', driver = 'psycopg2', user…

Tableau基礎

web-kaizen.co.jp移動平均 web-kaizen.co.jp

cdコマンド(ディレクトリ移動)

www.garunimo.com

EC2にsshでログインできなくなった場合の対処法

環境構築時にハマったので備忘として。 gist.github.com

emacsについて

emacsのコピペのメカニズム コピーアンドペーストを使いこなす(松山智大) — ありえるえりあemacsを使って文章を書く Emacs を使って,文章を書く - Linux による Web プログラミング入門

SSHの公開鍵を作成しGithubに登録する手順

最初にしかやらないから忘れがちなので備忘として。 monsat.hatenablog.com qiita.com

クラスタリング

<非階層的手法> 評価関数(例えばクラスタ内誤差平方和、SSE)を定義し、これが最適になるような分割する。 k-meansの流れは次の4段階にまとめられる。1: k個の中心点をランダムに選ぶ。 2: 各サンプルを最も近い中心点に割り当てクラスタを作る。 3: クラ…

pandas操作①:loc, iloc, ixの違い