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