예제가 포함된 Pandas read_csv()

Pandas에서 CSV 가져오기

TensorFlow 튜토리얼에서는 성인 데이터 세트를 사용합니다. 분류 작업에 자주 사용됩니다. 이 URL에서 사용 가능합니다 https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

데이터는 CSV 형식으로 저장됩니다. 이 데이터 세트에는 XNUMX개의 범주형 변수가 포함되어 있습니다.

이 데이터 세트에는 8개의 범주형 변수가 포함되어 있습니다.

  • 작업반
  • 교육
  • 결혼의
  • 직업
  • 관계
  • 경주
  • 섹스
  • 원주민_국가

그리고 6개의 연속 변수:

  • 나이
  • fnlwgt
  • education_num
  • 자본 이득
  • 자본 손실
  • 시간_주

팬더 read_csv() 메서드

CSV 데이터세트를 가져오려면 pd.read_csv() 개체를 사용할 수 있습니다. 내부의 기본 주장은 다음과 같습니다.

팬더 read_csv() 구문

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • 파일 경로 또는 버퍼: 데이터가 포함된 경로 또는 URL
  • XNUMX월=',': 사용할 구분자를 정의합니다.
  • `이름=없음`: 열의 이름을 지정합니다. 데이터 세트에 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)

Pandas groupby() 메서드

데이터를 보는 쉬운 방법은 groupby 메서드를 사용하는 것입니다. 이 메서드는 그룹별로 데이터를 요약하는 데 도움이 될 수 있습니다. 아래는 groupby() 메서드에서 사용할 수 있는 메서드 목록입니다.

  • 카운트: 카운트
  • 분: 분
  • 최대: 최대
  • 뜻: 뜻
  • 중앙값: 중앙값
  • 표준편차: SDT

groupby() 내부에서 메서드를 적용하려는 열을 사용할 수 있습니다.

성인 데이터 세트를 사용한 단일 그룹화를 살펴보겠습니다. 수익 유형별로(예: 50 초과 또는 50 미만) 모든 연속 변수의 평균을 얻을 수 있습니다.

df_train.groupby(['label']).mean()
상표 나이 fnlwgt education_num 자본 이득 자본 손실 시간_주
<= 50 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 다음에 플롯을 만들 수 있습니다. 이를 수행하는 한 가지 방법은 그룹화 후에 플롯을 사용하는 것입니다.

보다 우수한 플롯을 생성하려면 동일한 다단계 인덱스를 갖도록 평균() 다음에 unstack()을 사용하거나 50 미만 및 50 이상의 수익으로 값을 결합합니다. 이 경우 플롯에는 14개(2*7) 대신 두 개의 그룹이 포함됩니다.

당신이 사용하는 경우 Jupyter 수첩%matplotlib를 인라인으로 추가해야 합니다. 그렇지 않으면 플롯이 표시되지 않습니다.

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

Pandas groupby() 메소드 예

제품 개요

  • CSV 데이터세트를 가져오려면 판다, pd.read_csv() 객체를 사용할 수 있습니다.
  • groupby() 메서드를 사용하면 그룹별로 데이터를 요약할 수 있습니다.
  • 여러 열로 그룹화할 수도 있습니다. 예를 들어, 가구 유형과 결혼 상태에 따라 최대 자본 이득을 얻을 수 있습니다.