スーパーメモ

進捗なし

Pythonデータ分析まとめ(pandas, skitlearn)

基本操作

データ読み込み

test.csv

column1,column2,column3
1,2,3,
4,5,6,
7,8,9

を読み込む。

import pandas as pd
df = pd.read_csv("test.csv")
df.head()
エクセルファイルの場合
df = pd.read_excel("test.xlsx")
ImportError: Missing optional dependency 'xlrd'. Install xlrd >= 1.0.0 for Excel support Use pip or conda to install xlrd.

xlrdが入ってない場合は、インストールが必要

結合

innerだと同一名が合体するが、outerだと別(列・行)として結合される。

data = pd.concat([df1,df2],ignore_index=True)
data.head()

df1のデータをすべて残し、id一致で結合

data = pd.merge(df1,[df2,df3],on="id",how="left)

カラム作成

df4["column4"] = df4["column1"] * df4["column2"]

統計

df4["column1"].sum() #合計
df4["column1"].average()#平均
df4["column1"].min()#最低
df4["column1"].max()#最大
df4.describe() #統計量表示
df4.dtypes #データタイプ
df4.groupby("column3").sum()["column2"]#column3のデータでグループ化したうえで、column2のデータをグループ内で合計

ユニーク

かぶらないデータのリストを返す

pd.unique(df4.column1)

欠損値

欠損値の有無をaxisで指定した次元に対して判定

df4.isnull().any(axis=0)

行指定、列指定(at,iat,loc,iloc)

at,iatは単一、loc,ilocは範囲指定が可能。atは使う機会が少ない気がする。
iat,ilocは行番号、列番号で指定。

df.loc[df['column2'] > 6, ['column4']]