본문 바로가기
DNN with Keras/Machine Learning

그룹화, 정렬 및 섞기 (2)

by goatlab 2023. 7. 27.
728x90
반응형
SMALL

Sorting a Data Set

 

 

모델을 학습하기 전에, 훈련 및 전처리 중에 데이터 세트를 셔플하는 것이 항상 좋지만, 데이터 세트를 정렬할 수도 있다. 데이터 세트를 정렬하면 하나 이상의 열에 대해 오름차순 또는 내림차순으로 행을 정렬할 수 있다.

 

import os
import pandas as pd
import numpy as np

np.random.seed(42)

df = pd.read_csv('auto-mpg.csv', na_values = ['NA', '?'])

df = df.sort_values(by = 'name', ascending = True)
print(f"The first car is : {df['name'].iloc[0]}" )

pd.set_option('display.max_columns', 7)
pd.set_option('display.max_rows', 5)
display(df)

 

Grouping a Data Set

 

그룹화는 데이터 세트에 대한 일반적인 작업이다. SQL (Structured Query Language)은 이 작업을 "GROUP BY"라고 부른다. 프로그래머는 그룹화를 사용하여 데이터를 요약한다. 이 때문에 요약 행 수는 일반적으로 줄어들기 때문에 그룹화를 취소할 수 없다. 이러한 정보 손실로 인해 그룹화 전에 원래 데이터를 유지하는 것이 필수적이다.

 

다음 코드는 실린더를 평균 (mean)으로 그룹화합니다. 이 코드는 그룹화를 제공한다. 평균 외에도 합계 또는 카운트와 같은 다른 집계 함수를 사용할 수 있다.

 

import os
import pandas as pd
import numpy as np

np.random.seed(42)

df = pd.read_csv('auto-mpg.csv', na_values = ['NA', '?'])

pd.set_option('display.max_columns', 7)
pd.set_option('display.max_rows', 5)

g = df.groupby('cylinders')['mpg'].mean()

display(g)
cylinders
3    20.550000
4    29.286765
5    27.366667
6    19.985714
8    14.963107
Name: mpg, dtype: float64

 

이러한 평균값을 사전으로 사용하는 것이 유용할 수 있다.

 

d = g.to_dict()
d
{3: 20.55,
 4: 29.28676470588235,
 5: 27.366666666666664,
 6: 19.985714285714284,
 8: 14.963106796116506}

 

사전을 사용하면 개별 요소에 빠르게 액세스할 수 있다. 예를 들어, 6기통 차량의 평균을 빠르게 검색할 수 있다.

 

d[6]
19.985714285714284

 

아래 코드는 각 실린더 카운트와 일치하는 행의 수를 카운트하는 방법을 보여준다.

 

df.groupby('cylinders')['mpg'].count().to_dict()
{3: 4, 4: 204, 5: 3, 6: 84, 8: 103}
728x90
반응형
LIST