-
데이터 살펴보기 (판다스/데이터프레임)Studies/Data Analytics&ML 2022. 9. 25. 23:25
1 . 실습 3_1
(1) 코드
# -*- coding: utf-8 -*- import pandas as pd # read_csv() 함수로 df 생성 df = pd.read_csv('./auto-mpg.csv', header=None) # 열 이름을 지정 df.columns = ['mpg','cylinders','displacement','horsepower','weight', 'acceleration','model year','origin','name'] # 데이터프레임 df의 내용을 일부 확인 print(df.head()) # 처음 5개의 행 print('\n') print(df.tail()) # 마지막 5개의 행 # df의 모양과 크기 확인: (행의 개수, 열의 개수)를 투플로 반환 print(df.shape) print('\n') # 데이터프레임 df의 내용 확인 print(df.info()) print('\n') # 데이터프레임 df의 자료형 확인 print(df.dtypes) print('\n') # 시리즈(mog 열)의 자료형 확인 print(df.mpg.dtypes) print('\n') # 데이터프레임 df의 기술통계 정보 확인 print(df.describe()) print('\n') print(df.describe(include='all'))
(2) 실행결과 (describe()만)
- df.describe()
-df.describe(includes='all')
2. 실습 3_2
(1) 코드
# -*- coding: utf-8 -*- import pandas as pd # read_csv() 함수로 df 생성 df = pd.read_csv('./auto-mpg.csv', header=None) # 열 이름을 지정 df.columns = ['mpg','cylinders','displacement','horsepower','weight', 'acceleration','model year','origin','name'] # 데이터프레임 df의 각 열이 가지고 있는 원소 개수 확인 print(df.count()) print('\n') # df.count()가 반환하는 객체 타입 출력 print(type(df.count())) print('\n') # 데이터프레임 df의 특정 열이 가지고 있는 고유값 확인 unique_values = df['origin'].value_counts() print(unique_values) print('\n') # value_counts 메소드가 반환하는 객체 타입 출력 print(type(unique_values))
(2) 실행결과
(3) 설명
unique_values = df['origin'].value_counts()
origin열에는 값이 1 또는 2 또는 3이 존재하는데, 각각 개수가 몇개인지 세주는 메소드
3. 실습 3_3
(1) 코드
# -*- coding: utf-8 -*- import pandas as pd # read_csv() 함수로 df 생성 df = pd.read_csv('./auto-mpg.csv', header=None) # 열 이름을 지정 df.columns = ['mpg','cylinders','displacement','horsepower','weight', 'acceleration','model year','origin','name'] # 평균값 print(df.mean()) print('\n') print(df['mpg'].mean()) print(df.mpg.mean()) print('\n') print(df[['mpg','weight']].mean()) # 중간값 print(df.median()) print('\n') print(df['mpg'].median()) # 최대값 print(df.max()) print('\n') print(df['mpg'].max()) # 최소값 print(df.min()) print('\n') print(df['mpg'].min()) # 표준편차 print(df.std()) print('\n') print(df['mpg'].std()) # 상관계수 print(df.corr()) print('\n') print(df[['mpg','weight']].corr())
4. 실습 3_4
(1) 코드
# -*- coding: utf-8 -*- import pandas as pd df = pd.read_excel('./남북한발전전력량.xlsx', engine='openpyxl') # 데이터프레임 변환 print(df) df_ns = df.iloc[[0,5], 3:] # 남한, 북한 발전량 합계 데이터만 추출 # print(df_ns) df_ns.index = ['South','North'] # 행 인덱스 변경 df_ns.columns = df_ns.columns.map(int) # 열 이름의 자료형을 정수형으로 변경 print(df_ns.head()) # print('\n') # 선 그래프 그리기 df_ns.plot() # 행, 열 전치하여 다시 그리기 tdf_ns = df_ns.T print(tdf_ns.head()) print('\n') tdf_ns.plot()
(2) 실행결과
(3) 설명
전치를 하는 이유는 df_ns.plot()을 했을 때 행 인덱스가 x축으로 가는데,
위 그래프에서는 년도가 x축으로 가는 게 그래프가 가시적으로 보이므로,
전치를 한다.
5. 실습 3_5
(1) 코드
# -*- coding: utf-8 -*- import pandas as pd df = pd.read_excel('./남북한발전전력량.xlsx', engine='openpyxl') # 데이터프레임 변환 df_ns = df.iloc[[0, 5], 3:] # 남한, 북한 발전량 합계 데이터만 추출 df_ns.index = ['South','North'] # 행 인덱스 변경 df_ns.columns = df_ns.columns.map(int) # 열 이름의 자료형을 정수형으로 변경 # 행, 열 전치하여 막대 그래프 그리기 tdf_ns = df_ns.T print(tdf_ns.head()) print('\n') tdf_ns.plot(kind='bar')
(2) 실행결과
6. 실습 3_6
(1) 코드
# -*- coding: utf-8 -*- import pandas as pd df = pd.read_excel('./남북한발전전력량.xlsx', engine='openpyxl') # 데이터프레임 변환 df_ns = df.iloc[[0, 5], 3:] # 남한, 북한 발전량 합계 데이터만 추출 df_ns.index = ['South','North'] # 행 인덱스 변경 df_ns.columns = df_ns.columns.map(int) # 열 이름의 자료형을 정수형으로 변경 # 행, 열 전치하여 히스토그램 그리기 tdf_ns = df_ns.T tdf_ns.plot(kind='hist')
(2) 실행결과
7.실습 3_7
(1) 코드
# -*- coding: utf-8 -*- import pandas as pd # read_csv() 함수로 df 생성 df = pd.read_csv('./auto-mpg.csv', header=None) # 열 이름을 지정 df.columns = ['mpg','cylinders','displacement','horsepower','weight', 'acceleration','model year','origin','name'] # 2개의 열을 선택하여 산점도 그리기 df.plot(x='weight',y='mpg', kind='scatter')
(2) 실행결과
8. 실습 3_8
(1) 코드
# -*- coding: utf-8 -*- import pandas as pd # read_csv() 함수로 df 생성 df = pd.read_csv('./auto-mpg.csv', header=None) # 열 이름을 지정 df.columns = ['mpg','cylinders','displacement','horsepower','weight', 'acceleration','model year','origin','name'] # 열을 선택하여 박스 플롯 그리기 df[['mpg','cylinders']].plot(kind='box')
(2) 실행결과
'Studies > Data Analytics&ML' 카테고리의 다른 글
[딥러닝의 이해] 학습이란? + Loss Function (0) 2023.09.17 [머신러닝] 회귀(Regression) (0) 2023.01.23