Pandas read_csv() と例
Pandas に CSV をインポート
TensorFlow チュートリアルでは、アダルト データセットを使用します。 分類タスクでよく使用されます。 このURLから入手可能です https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
データはCSV形式で保存されます。 このデータセットには XNUMX つのカテゴリ変数が含まれています。
このデータセットには 8 つのカテゴリ変数が含まれています。
- ワーククラス
- 教育
- 夫婦の
- 職業
- 関係
- レース
- セックス
- 母国
そして、6 つの連続変数:
- 年齢
- fnlwgt
- 教育番号
- 資本利得
- 資本損失
- 時間_週
パンダの read_csv() メソッド
CSV データセットをインポートするには、オブジェクト pd.read_csv() を使用できます。 内部の基本的な引数は次のとおりです。
パンダの read_csv() 構文
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- ファイルパスまたはバッファ: データが含まれるパスまたは 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 メソッドを使用することです。このメソッドは、データをグループ別にまとめるのに役立ちます。以下は、groupby() メソッドで使用できるメソッドの一覧です。
- カウント: カウント
- 分: 分
- 最大: 最大
- 意味:意味
- 中央値: 中央値
- 標準偏差:sdt
- 等
groupby() 内では、メソッドを適用する列を使用できます。
成人向けデータセットを含む 50 つのグループを見てみましょう。 収益のタイプ別、つまり 50 を超えるか、XNUMX 未満のすべての連続変数の平均を取得します。
df_train.groupby(['label']).mean()
ラベル | 年齢 | fnlwgt | 教育番号 | 資本利得 | 資本損失 | 時間_週 |
---|---|---|---|---|---|---|
<= 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
複数の列でグループ化することもできます。たとえば、世帯の種類や婚姻状況に応じて最大のキャピタルゲインを取得できます。
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
groupby の後にプロットを作成できます。これを行う 1 つの方法は、グループ化後にプロットを使用することです。
より優れたプロットを作成するには、mean() の後に unstack() を使用して同じマルチレベル インデックスを取得するか、50 未満と 50 を超える収益ごとに値を結合します。 この場合、プロットには 14 (2*7) ではなく XNUMX つのグループが含まれます。
あなたが使用している場合 Jupyter ノート必ず%matplotlibをインラインで追加してください。そうしないとプロットが表示されません。
%matplotlib inline df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack() df_plot
まとめ
- CSV データセットをインポートするには パンダ、オブジェクト pd.read_csv() を使用できます。
- groupby() メソッドを使用すると、データをグループごとに要約できます。
- 複数の列でグループ化することもできます。たとえば、世帯の種類や婚姻状況に応じて最大のキャピタルゲインを取得できます。