Pandas read_csv() と例

Pandas に CSV をインポート

TensorFlow チュートリアルでは、アダルト データセットを使用します。 分類タスクでよく使用されます。 このURLから入手可能です https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

データはCSV形式で保存されます。 このデータセットには XNUMX つのカテゴリ変数が含まれています。

このデータセットには 8 つのカテゴリ変数が含まれています。

  • ワーククラス
  • 教育
  • mariこうしたA
  • 職業
  • 関係
  • レース
  • セックス
  • 母国

そして、6 つの連続変数:

  • 年齢
  • fnlwgt
  • 教育番号
  • 資本利得
  • 資本損失
  • hours_週

パンダの read_csv() メソッド

CSV データセットをインポートするには、オブジェクト pd.read_csv() を使用できます。 内部の基本的な引数は次のとおりです。

パンダの read_csv() 構文

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • ファイルパス_または_buffer: データが含まれるパスまたは URL
  • sep=', ': 使用する区切り文字を定義します
  • `名前=なし`: 列に名前を付けます。 データセットに XNUMX 列がある場合は、XNUMX 個の名前を渡す必要があります
  • `index_col=なし`: 「はい」の場合、最初の列が行インデックスとして使用されます。
  • `skipinitialspace=False`: 区切り文字の後のスペースをスキップします。

read_csv() の詳細については、公式ドキュメントを確認してください。

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

パンダの read_csv() の例

## Import csv
import pandas as pd
## Define path data
COLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital',
           'occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss',
           'hours_week', 'native_country', 'label']
PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"
df_train = pd.read_csv(PATH,
                       skipinitialspace=True,
                       names = COLUMNS,
                       index_col=False)
df_train.shape

出力:

(32561, 15)

パンダの groupby() メソッド

データを確認する簡単な方法は、groupby メソッドを使用することです。この方法は、合計するのに役立ちますmariデータをグループごとに表示します。以下は、groupby() メソッドで使用できるメソッドのリストです。

  • カウント: カウント
  • 分: 分
  • 最大: 最大
  • 意味:意味
  • 中央値: 中央値
  • 標準偏差:sdt

groupby() 内では、メソッドを適用する列を使用できます。

成人向けデータセットを含む 50 つのグループを見てみましょう。 収益のタイプ別、つまり 50 を超えるか、XNUMX 未満のすべての連続変数の平均を取得します。

df_train.groupby(['label']).mean()
ラベル 年齢 fnlwgt 教育番号 資本利得 資本損失 hours_週
<= 50K 36.783738 190340.86517 9.595065 148.752468 53.142921 38.840210
> 50K 44.249841 188005.00000 11.611657 4006.142456 195.001530 45.473026

世帯の種類ごとに最低年齢を取得できます。

df_train.groupby(['label'])['age'].min()
label
<=50K    17
>50K     19
Name: age, dtype: int64

複数の列でグループ化することもできます。例えば、世帯形態に応じて最大のキャピタルゲインを得ることができ、 mariタルステータス。

df_train.groupby(['label', 'marital'])['capital_gain'].max()				
label  marital              
<=50K  Divorced                 34095
       Married-AF-spouse         2653
       Married-civ-spouse       41310
       Married-spouse-absent     6849
       Never-married            34095
       Separated                 7443
       Widowed                   6849
>50K   Divorced                 99999
       Married-AF-spouse         7298
       Married-civ-spouse       99999
       Married-spouse-absent    99999
       Never-married            99999
       Separated                99999
       Widowed                  99999
Name: capital_gain, dtype: int64

次のようにプロットを作成できますwing グループビー。 これを行う XNUMX つの方法は、グループ化の後にプロットを使用することです。

より優れたプロットを作成するには、mean() の後に unstack() を使用して同じマルチレベル インデックスを取得するか、50 未満と 50 を超える収益ごとに値を結合します。 この場合、プロットには 14 (2*7) ではなく XNUMX つのグループが含まれます。

あなたが使用している場合 Jupyter ノート%matplotlib をインラインで追加してください。その他wise、プロットは表示されませんyed

%matplotlib inline
df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()
df_plot

パンダの groupby() メソッドの例

まとめ

  • CSV データセットをインポートするには パンダ、オブジェクト pd.read_csv() を使用できます。
  • groupby() メソッドは、合計を計算するのに役立ちます。mariデータをグループごとに表示します。
  • 複数の列でグループ化することもできます。例えば、世帯形態に応じて最大のキャピタルゲインを得ることができ、 mariタルステータス。