1.  데이터 파일 저장

DataFrame_data.to_csv(file_name [, options])

 

🚀  to_csv()을 이용하면 DataFrame 형식의 데이터를 텍스트 파일로 저장

🚀  file_name은 텍스트 파일 이름으로 경로를 포함할 수 있음
🚀  선택사항인 options에는 구분자와 문자의 인코딩 방식 등을 지정

       ⚡️ 지정하지 않으면 구분자는 콤마가 되고, 문자의 인코딩 방식은 'utf-8'이 됨

 

# 네 명의 몸무게 Weight와 키 Height 데이터를 DataFrame 형식으로 생성.
df_WH = pd.DataFrame({'Weight': [62, 67, 55, 74],
                      'Height': [165, 177, 160, 180]},
                      index=['ID_1', 'ID_2', 'ID_3', 'ID_4'])
df_WH

df_WH 출력 결과

# index명 지정하는 경우
df_WH.index.name = 'User'
df_WH

df_WH 출력 결과

 


 📌  텍스트 파일 사용 예시

file_name = '../output/save_DataFrame_cp949.txt'
df_pr.to_csv(file_name, sep=' ', encoding='cp949')

 

2. 데이터 확인

1) DataFrame 만들기

import pandas as pd

# csv 파일 불러오기

df = pd.read_csv('../input/weather.csv')
print(df)

출력 결과


 

2) df.shape

 

👾  shape 속성을 이용하면 데이터의 (행, 열) 크기를 확인할 수 있음

df.shape
# 출력 결과 : (3653, 4)

df.shape[0]
# 출력 결과 : 3653

 


 

3) df.info()

 

👾  info()메서드는 데이터에 대한 전반적인 정보를 나타냄
👾  df를 구성하는 행과 열의 크기, 컬럼명, 컬럼을 구성하는 값의 자료형을 출력해 줌

df.info()

'''
출력 결과)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3653 entries, 0 to 3652
Data columns (total 4 columns):
 #   Column     Non-Null Count  Dtype  
---  ------     --------------  -----  
 0   date       3653 non-null   object 
 1   temp       3653 non-null   float64
 2   max_wind   3649 non-null   float64
 3   mean_wind  3647 non-null   float64
dtypes: float64(3), object(1)
memory usage: 114.3+ KB
'''

 

  📌  데이터 개수 n=3653 entry, 행 인덱스 번호 0 to 3652
  📌  열 변수 출력 형식 : 실수 float, 문자열 object
  📌  결측치 개수가 나타남 : max_wind, mean_wind 변수에 결측치가 있음 (= 값이 없는 칸이 존재 )

 


 

4) df.head() / df.tail()

 

👾  데이터를 잘 불러 왔는지 확인하기 위해 앞 부분(head)과 마지막 부분(tail)을 확인
👾  head()는 상위 5개 행을 출력하고, tail()은 하위 5개 행을 출력
👾 괄호() 안에 원하는 숫자를 넣으면 그 숫자만큼 행을 출력

# 상위 5행
df.head(5)

출력 결과

# 하위 n행 살펴보기
df.tail()

출력 결과

 


 

5) df.index, df.columns

 

👾  인덱스(행 이름)과 열의 레이블(칼럼 이름)을 출력할 때 사용

# 인덱스 출력
df.index
# 데이터프레임의 인덱스(행 이름)을 반환. 인덱스를 따로 지정하지 않았기 때문에 0부터 시작하는 인덱스가 부여.
# 출력 결과 : RangeIndex(start=0, stop=3653, step=1)
# 컬럼 출력
df.columns
# 출력 결과: Index(['date', 'temp', 'max_wind', 'mean_wind'], dtype='object')

  

 📌  해당 데이터프레임을 구성하는 컬럼명을 확인할 수 있음
 📌  컬럼명을 변경할 때도 유용하게 사용

 


 

6) df.describe()

 

👾  데이터의 컬럼별 요약 통계량을 나타냄
👾  mean(), max() 등 개별 함수를 사용하여 통계량을 계산 할 수 있음

# 요약 통계량 확인하기.
df.describe()

출력 결과


 

7) df.sort_values()

 

👾  데이터를 크기 순으로 정렬

# 형식
DataFrame.sort_values(by=['정렬변수1', '정렬변수2'...], ascending=True, inplace=False


  📌  by=[] : by=을 사용하지 않아도 됨
  📌  ascending=True : True가 기본 값이고 오름차순 정렬. 내림차순 정렬일 경우에는 False 사용.
  📌  inplace=False : True 이면 정렬 결과가 동일 데이터프레임 이름으로 저장. 기본 값은 False.

 

# 최대 풍속 max_wind 컬럼의 값의 크기에 따라 오름차순 정렬
df.sort_values(['max_wind'])

출력 결과

# 최대 풍속 max_wind 컬럼의 값의 크기에 따라 내림차순 정렬
df.sort_values(by=['max_wind'], ascending=False)

출력 결과

 


 

8) df.value_counts()

 

👾  범주형 변수의 빈도분석 결과를 출력, 즉 어떤 컬럼의 unique value(고유값)들의 개수를 구함

bank = pd.read_csv('../input/bank.csv')

# 빈도 분석 출력하기
bank['job'].value_counts()

'''
출력 결과)
job
management       1560
blue-collar      1499
technician       1206
admin.            834
services          661
retired           351
self-employed     256
entrepreneur      239
unemployed        223
housemaid         208
student           153
Name: count, dtype: int64
'''
bank['job'].value_counts(ascending=True)
# -> 위의 결과를 오름차순으로 정렬

 


 

9) df.unique()

 

👾  데이터가 무엇으로 구성되어 있는지 보고 싶을 때 사용. 열의 고유값을 볼 수 있음

# column의 고유값 출력하기
bank['job'].unique()

'''
출력 결과)
array(['management', 'technician', 'blue-collar', 'retired', 'services',
       'admin.', 'entrepreneur', 'self-employed', 'unemployed', 'student',
       nan, 'housemaid'], dtype=object)
'''

 

 

 

 

[ 내용 참고 : IT 학원 강의 ]

+ Recent posts