DataFrameの作成
df = pd.DataFrame({'C1':[1, 2, 3],
'C2':[4, 5, 6],
'C3':[7, 8, 9]},
index = [A, B, C])
ユニークな値の数を確認
df.unique()
欠損値の確認
df.isnull().sum()
行名・列名を確認
df.index
df.columns
データの選択と抽出
基本的な選択
df.loc['A']
df.loc[:, 'C1']
df.loc['A', ['C1', 'C3']]
df.iloc[1]
条件による選択
df > 0 #ブール型
df[df > 0] #Falseの部分がNaNで返ってくる
df['C1'] > 0
df[df['C1'] > 0]
df[(df['C1'] > 0) & (df['C1] < 1)]
データの追加と削除
df['New Column'] = df['C1'] * df['C2']
df.drop(columns=['C1']) #「inplace=True」にすると元のデータを書き換える
欠損値の処理
削除
df.dropna()
df['C1'].dropna()
df.isnull()
df[df['C2'].isnull() == False] #C2が欠損していないところだけを取り出す
df.dropna(thresh=3) #欠損値の数を指定
df.dropna(thresh=3、axis=1) #列に適用
置換
df['C2'].fillna(df['C2'].mean())
df.fillna(df.mean())
カテゴリカルなデータ
df['C1'].value_counts() #それぞれのカテゴリの数を返す
df['C1'] = df['C1'].fillna(df['C1'].mode()[0])
round(df['C1'].value_counts / len(df), 2)
df.groupby('C1').sum() #カテゴリごとに合計
df.groupby('C1').mean()
df.groupby('C1').max()
DataFrameの結合
pd.concat([df_1, ds_2])
pd.concat([df_1, ds_2], axis=1, sort=True)