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
# index명 지정하는 경우
df_WH.index.name = 'User'
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 학원 강의 ]
'Programming Language > Python' 카테고리의 다른 글
[Python] Pandas | 결측데이터 확인, 삭제, 대체 (0) | 2024.03.13 |
---|---|
[Python] Pandas | 데이터 선택 - 열, 행, df.loc, df.iloc, 불인덱싱 (2) | 2024.03.12 |
[Python] Pandas | 통계 메서드, 판다스 데이터 읽기 read_csv() (0) | 2024.03.12 |
[Python] 판다스(Pandas) | DataFrame 데이터생성, Series와 DataFrame 데이터 연산 방법 (0) | 2024.03.12 |
[Python] 판다스(Pandas) | 정의, Series(), np.nan, data_range() 함수, 날짜 및 시간 생성 (0) | 2024.03.12 |