본문 바로가기
카테고리 없음

데이터분석 1

by 흰색남자 2021. 7. 21.

url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/drinks.csv'

drink_df = pd.read_csv(url, ',')

판다스로 csv파일을 읽으면 df형식으로 반환됨

 

drink_df.head()

상위 5개 보여줌

drink_df.tail()

하위 5개 보여줌

 

type(drink_df) // 타입 확인

 

drink_df.sample(10) // 랜덤 10개 보여줌

 

df.index 인덱스 확인

 

# 각 컬럼의 타입 출력

drink_df.dtypes

타입을 출력해서 각 컬럼의 정보를 알아내야한다. 꼭 필요한 작업이다.

 

# 데이터프레임의 행과 열의 개수 출력

drink_df.shape

행과 열의 개수를 출력한다.

(행, 열)

 

cols = ['beer_servings','wine_servings']

drink_df[cols]

열 2개 출력한다.

하나출력할때는 1차원으로 사용해도 되지만, 2개 이상일때는 2차원으로 사용해야한다..

 

 

drink_df.info()를 사용하면 데이터의 피쳐값이 나온다. 예를들어 

# Column Non-Null Count Dtype

--- ------ -------------- -----

0 country 193 non-null object

1 beer_servings 193 non-null int64

2 spirit_servings 193 non-null int64

3 wine_servings 193 non-null int64

4 total_litres_of_pure_alcohol 193 non-null float64

5 continent 193 non-null object

이러한 shape로 나온다.

 

null값을 체크할때 사용한다. sum을 한번만 사용하면, 각 컬럼별 null값이 나오고,

2번 사용하면 2차원 데이터의 총 null값 개수가 나온다. 

print(drink_df.isnull().sum())

 

 

drink_df.describe()

describe : 설명하다

말 그대로 df을 설명한다.

요렇게 나옴.

 

drink_df.beer_servings.describe() 이렇게하면 

beer_servings열의 describe값만 나온다.

mean < 표준편차

max < 최대값

min < 최소값

sum < 합계

count < 개수

 

drink_df.continent=='EU'

continent가 EU인 데이터프레임을 검색// bool값으로 출력함. continent. 열만 나옴.

 

drink_df[drink_df.beer_servings <= 10]

drink_df의 beer_servings 열이 10이하인 drink_df의 모든 열을 출력함

 

drink_df[drink_df.beer_servings <= 10][['country','beer_servings']].head(20)

drink_df의 beer_servings 열이 10이하인 drink_df의 country, beer_servings 열을 출력함.

여기서도 2차원으로 입력된것을 볼 수 있음.

 

 

drink_df[drink_df.continent=='EU'].beer_servings.mean()

표준편차를 출력. 열은 beer_servings

 

drink_df[(drink_df.continent=='EU') & (drink_df.wine_servings > 300)]

 

continent=='EU' 이고 ,wine_servings > 300) 인 모든 열을 출력

 &조건 물론 or 도있다 or은 |

drink_df[drink_df.total_litres_of_pure_alcohol == drink_df.total_litres_of_pure_alcohol.max()]['country']

drink_df.total_litres_of_pure_alcohol == drink_df.total_litres_of_pure_alcohol.max()

df의 total_litres_of_pure_alcohol이 최대값인 country열을 출력.

 

 

drink_df.sort_values('beer_servings')

정렬. 정렬은 오름차순이 기본임. 만약 내림차순으로 하려면 

sort_values의 인자로 ascending=False를 추가

drink_df.sort_values(['beer_servings''wine_servings'])이렇게하면 두개의 열 기준으로 출력

 

 

 

corr = test_df.corr(method = 'pearson')

상관계수를 구하는 법.

corr 함수를 쓰면 됨

 

# 레이블의 폰트 사이즈를 조정

sns.set(font_scale=2.0)

 

test_heatmap = sns.heatmap(corr.values, # 데이터

                          cbar = False# 오른쪽 컬러 막대 출력 여부 기본이 true

                           annot = True# 차트에 숫자를 보여줄 것인지 여부

                          annot_kws={'size' : 20}, # 숫자 출력 시 숫자 크기 조절

                           fmt = '.2f'# 숫자의 출력 소수점자리 개수 조절

                           square = 'True'# 차트를 정사각형으로 할 것인지

                          yticklabels=column_names, # y축에 컬럼명 출력

                          xticklabels=column_names) # x축에 컬럼명 출력

plt.tight_layout() : 이건 원래, 현재 figure상에서 배치되어 있는 놈들의 공백을 적당하게 잘 배치해주는 거죠, 물론 여기서는 필수적으로 필요한 놈은 아닙니다.

plt.show() : 

plt.show() 는 화면에 표시하는 기능을 하는데 Jupyter나 IPython을 사용할 때는 자동으로 표시되기 때문에 호출할 필요가 없다.