読み込み・保存・書き出し
CSVファイルの読み込み
df = pd.read_csv('パス')
CSVファイルの書き出し
pd.Series(y, name='pred').to_csv('submission.csv', index=None)
pickleファイルへ保存
pd.to_pickle(forest, 'ファイル名.pkl')
PandasのDataFrameに変換
df = pd.DataFrame(x,columns = coulumns)
表示する
df.shape #行・列の数
df.type() #データの型
df.info() #データ数と型
df.nunique() #ユニークな値の数
df.isnull().sum() #欠損値の数
df.head() #上から5行表示
df.tail() #下から5行表示
df.describe() #要約統計量の確認
df.describe(include='all') #文字列も含めて確認
df.index #行名
df.coulumns #列名
相関関係を確認
df_corr
df_corr[df_corr > 0.99] #0.99以上を表示、それ以外をNan
切り出す
df.iloc[:, 0] #全ての行の0列目
df.iloc[:, 1:] #全ての行の1列目〜最後の列まで
df.loc[:, 'SAMPLE'] #全ての行の'SAMPLE'列
df.loc[:,['SAMPLE1', 'SAMPLE2']] #全ての行の'SAMPLE1'列と'SAMPLE2'列
条件付きでデータを切り出す
df['name'].str.contains('li') #name列の文字列liを含む要素をTrueにする
df.filter(like='apple', axis=0) #行名・列名が部分一致する行・列を抽出: 引数like
条件付きでデータを切り出す(比較演算子①)
df > 0 #0より大きければTrue
df[df > 0] #Trueのところだけ値が残り、FalseはNan(欠損値)になる
df['C'] > 0 #C1列の0より大きいデータをTrue
df[df['C']] > 0 #C1列の0より大きいデータの全体の行だけ表示
条件付きでデータを切り出す(比較演算子②)
df[df['Origin'] == 3].head() #'Origin'が3
df[(df['Origin'] == 3) & (df['Weight'] >= 2000)].head() #'Origin'が3で'Weight'が2000以上
df[(df['Origin'] != 1) | (df['Weight'] > 3000)].sort_values('MPG').head() #'Origin'が1ではない、もしくは'Weight'が3000より大きいデータを'MPG'が小さい順に表示
df['Class'][df['Class'] == 0.0].shape #Class列の0.0の行を表示
並べ替え
df.sort_value('Weight').head() #'Weight'が小さい順
df.sort_value('Weight', ascending = False).head() #'Weight'が大きい順
追加・削除
df['Origin'] = origin # Origin列を作成し、originを代入
# 注意:データフレームの行数と新しく入れる行数が同じことが条件
df = df.drop(labels='Origin', axis=1) # 'Origin'の列方向を削除
置き換え
df['A'].replace('M', 1) #A列のMを1に置き換え
欠損値の処理
dropna:欠損しているデータを削除
df.dropna() #欠損値がある行を全て削除
df['C2'].dropna() #C2列の欠損値がある行を削除
df.dropna(thresh = 3) #3つ欠損値がある行を全て削除
fillna:欠損値を別の値で埋める
df['C2'].fillna(df['C2'].mean()) #C2列の欠損値をC2の平均値で埋める
カテゴリカルなデータ
df['C1'].value.counts() #カテゴリとデータの数を確認
df[df['C1'] == 'A'] #特定のカテゴリのデータだけを取り出す
df_obj = df.select_dtypes(include='object') #カテゴリカル変数を含んだデータのみを抽出
平均値でグループ化
df.group('Origin').mean
クロス集計
pd.crosstab(df['Cylimders'], df['Origin'])
ピポッドテーブル
pd.pivot_table(df, value='MPG', index='Model Year', columns='Origin', aggfunc='mena')
おまけ
統計量の表記の意味
-
count:値の数
-
mean:平均値
-
std:標準偏差
-
min:最小値
-
25%:第一四分位数
-
50%:第二四分位数(中央値)
-
75%:第三四分位数
-
max:最大値
参考リンク
Pandasのメソッド一覧
pandasで特定の文字列を含む行を抽出(完全一致、部分一致)
条件を満たす行名・列名の行・列を抽出(選択)
【初心者向け】データ分析で必須のPandasを入門しよう!
並べ替え