Dive into hoge

データ分析関連の備忘録

python

pipとconda

pipとcondaとはなにか? pipはPython標準のパッケージ管理ツールでPyPIからインストールする。 condaはAnacondaのパッケージ管理ツールでAnaconda社が提供するレポジトリからパッケージをインストールする(だからPyPIにはあるけどAnacondaにはない場合があ…

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

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

xgboost:エラー編

RandomForestのグリッドサーチと同じようにxgboostでもやろうとした。下記はmax_depthとmin_child_weightのみを使ったグリッドサーチ。 X_train, X_test, y_train, y_testはpandas。 GridSearchCVのパラメーターは今回の話に関係ないから無視してよい。 from…

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…

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に入れるやつの…

欠損値を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…

クラスタリング

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

numpy.ndarrayにappendしたいとき

numpy.ndarrayにattributionとしてappendは用意されていない。 例えば x = np.arange(-100,101,1) というとき、 x.append ではattribution errorとなる(listと同じようには扱えない)。 np.append(x, 1) とやる必要がある(1には追加したい要素)

Inputデータの次元が合わないとエラーが出たとき

まず前提のimportが下記。 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.svm import SVCデータセットはこれ。ここからが本文。 df = pd.read_csv("Wholesale customers data.csv") X = pd.DataFrame(df, columns…

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

StandardScalerとMinMaxScaler

sklearnの標準化と規格化モジュールの比較。 正規化、標準化とは 正規化:正規化とは、特徴量の値の範囲を一定の範囲におさめる変換標準化:標準化とは、特徴量の平均を0、分散を1にする変換 基本は、標準化を用いる。正規化だと、外れ値が強く影響してしま…

numpyの配列のスライス

すぐに忘れる。備忘。