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']]