[파이썬 pandas 활용법]
* 아래 [더보기] 클릭 후 [Ctrl + F] 단축키를 활용하여 찾고 계신 함수 위치로 바로 가실 수 있습니다.
[데이터 생성 및 로드]
1. 데이터프레임 생성: pd.DataFrame
2. CSV 파일 쓰기: df.to_csv
3. CSV 파일 읽기: pd.read_csv
[데이터프레임 정보]
1. 데이터프레임 정보 요약: df.info
2. 데이터프레임의 통계 요약: df.describe
3. 데이터프레임의 상위/하위 n개 행 보기: df.head(n), df.tail(n)
[데이터 선택 및 필터링]
1. 열 선택
2. 여러 열 선택
3. 행 선택 (인덱스로): df.loc
4. 행 선택 (조건으로)
[데이터 조작]
1. 새 열 추가
2. 열 삭제: df.drop
3. 행 삭제: df.drop
4. 값 대체: df.replace
[결측값 처리]
1. 결측값 확인: df.isnull
2. 결측값 삭제: df.dropna
3. 결측값 대체: df.fillna
[데이터 그룹화 및 집계]
1. 그룹화: df.groupby
2. 집계
[정렬]
1. 값 정렬: df.sort_values
2. 인덱스 정렬: df.sort_index
[병합 및 결합]
1. 데이터프레임 병합: pd.merge
2. 데이터프레임 결합 (행): pd.concat
3. 데이터프레임 결합 (열): pd.concat
[데이터 생성 및 로드]
1. 데이터프레임 생성
- pd.DataFrame: 데이터를 구조화된 형태로 저장하기 위해 사용됩니다.
import pandas as pd
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
'Age': [28, 24, 35, 32],
'City': ['New York', 'Paris', 'Berlin', 'London']}
df = pd.DataFrame(data)
print(df)
# 출력값 :
# Name Age City
# 0 John 28 New York
# 1 Anna 24 Paris
# 2 Peter 35 Berlin
# 3 Linda 32 London
2. CSV 파일 쓰기
- df.to_csv: 데이터프레임을 CSV 파일로 저장합니다.
df.to_csv('./file.csv', index=False)
# 파일에 저장됨, 별도의 출력값 없음
3. CSV 파일 읽기
- pd.read_csv: CSV 파일을 읽어 데이터프레임으로 변환합니다.
df = pd.read_csv('./file.csv')
print(df)
# 출력값 : (CSV 파일 내용에 따라 다름)
[데이터프레임 정보]
1. 데이터프레임 정보 요약
- df.info: 데이터프레임의 구조, 데이터 타입, 메모리 사용량 등의 정보를 요약합니다.
df.info()
# 출력값 :
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 4 entries, 0 to 3
# Data columns (total 3 columns):
# # Column Non-Null Count Dtype
# --- ------ -------------- -----
# 0 Name 4 non-null object
# 1 Age 4 non-null int64
# 2 City 4 non-null object
# dtypes: int64(1), object(2)
# memory usage: 224.0+ bytes
2. 데이터프레임의 통계 요약
- df.describe: 수치형 데이터의 통계 요약을 제공합니다 (평균, 표준편차, 최소값, 최대값 등).
print(df.describe())
# 출력값 :
# Age
# count 4.000000
# mean 29.750000
# std 4.718052
# min 24.000000
# 25% 26.500000
# 50% 30.000000
# 75% 33.250000
# max 35.000000
3. 데이터프레임의 상위/하위 n개 행 보기
- df.head(n), df.tail(n): 데이터프레임의 상위 n개 또는 하위 n개의 행을 반환합니다.
print(df.head(3))
# 출력값 :
# Name Age City
# 0 John 28 New York
# 1 Anna 24 Paris
# 2 Peter 35 Berlin
print(df.tail(3))
# 출력값 :
# Name Age City
# 1 Anna 24 Paris
# 2 Peter 35 Berlin
# 3 Linda 32 London
[데이터 선택 및 필터링]
1. 열 선택
- 대괄호 표기법을 사용하여 특정 열을 선택합니다.
print(df['Name'])
# 출력값 :
# 0 John
# 1 Anna
# 2 Peter
# 3 Linda
# Name: Name, dtype: object
2. 여러 열 선택
- 대괄호 안에 리스트를 사용하여 여러 열을 선택합니다.
print(df[['Name', 'Age']])
# 출력값 :
# Name Age
# 0 John 28
# 1 Anna 24
# 2 Peter 35
# 3 Linda 32
3. 행 선택 (인덱스로)
- df.loc: 특정 인덱스의 행을 선택합니다.
print(df.loc[0])
# 출력값 :
# Name John
# Age 28
# City New York
# Name: 0, dtype: object
4. 행 선택 (조건으로)
- 조건문을 사용하여 특정 조건을 만족하는 행을 선택합니다.
print(df[df['Age'] > 30])
# 출력값 :
# Name Age City
# 2 Peter 35 Berlin
# 3 Linda 32 London
[데이터 조작]
1. 새 열 추가
- 새로운 열을 추가할 때는 대괄호 표기법을 사용합니다.
df['Country'] = ['USA', 'France', 'Germany', 'UK']
print(df)
# 출력값 :
# Name Age City Country
# 0 John 28 New York USA
# 1 Anna 24 Paris France
# 2 Peter 35 Berlin Germany
# 3 Linda 32 London UK
2. 열 삭제
- df.drop: 특정 열을 삭제합니다 (axis=1은 열을 의미합니다).
df = df.drop('Country', axis=1)
print(df)
# 출력값 :
# Name Age City
# 0 John 28 New York
# 1 Anna 24 Paris
# 2 Peter 35 Berlin
# 3 Linda 32 London
3. 행 삭제
- df.drop: 특정 행을 삭제합니다 (axis=0은 행을 의미합니다).
df = df.drop(0, axis=0)
print(df)
# 출력값 :
# Name Age City
# 1 Anna 24 Paris
# 2 Peter 35 Berlin
# 3 Linda 32 London
4. 값 대체
- df.replace: 특정 값을 다른 값으로 대체합니다.
df['City'] = df['City'].replace('Paris', 'NYC')
print(df)
# 출력값 :
# Name Age City
# 1 Anna 24 NYC
# 2 Peter 35 Berlin
# 3 Linda 32 London
[결측값 처리]
1. 결측값 확인
- df.isnull: 데이터프레임에서 결측값을 확인하고, df.isnull().sum()은 각 열의 결측값 개수를 반환합니다.
print(df.isnull())
# 출력값 :
# Name Age City
# 1 False False False
# 2 False False False
# 3 False False False
print(df.isnull().sum())
# 출력값 :
# Name 0
# Age 0
# City 0
# dtype: int64
2. 결측값 삭제
- df.dropna: 결측값이 있는 행을 삭제합니다.
df = df.dropna()
print(df)
# 출력값 : (결측값이 없는 경우 원래 데이터프레임과 동일)
# Name Age City
# 1 Anna 24 Paris
# 2 Peter 35 Berlin
# 3 Linda 32 London
3. 결측값 대체
- df.fillna: 결측값을 특정 값으로 대체합니다. 예를 들어, 평균값으로 대체할 수 있습니다.
df['Age'] = df['Age'].fillna(df['Age'].mean())
print(df)
# 출력값 : (결측값이 없는 경우 원래 데이터프레임과 동일)
# Name Age City
# 1 Anna 24 Paris
# 2 Peter 35 Berlin
# 3 Linda 32 London
[데이터 그룹화 및 집계]
1. 그룹화
- df.groupby: 특정 열을 기준으로 데이터를 그룹화합니다.
grouped = df.groupby('City')
print(grouped.mean())
# 출력값 :
# Age
# City
# Berlin 35.0
# London 32.0
# Paris 24.0
2. 집계
- 그룹화된 데이터프레임에서 특정 열에 대해 집계 함수를 적용합니다.
print(df.groupby('City')['Age'].mean())
# 출력값 :
# City
# Berlin 35.0
# London 32.0
# Paris 24.0
# Name: Age, dtype: float64
[정렬]
1. 값 정렬
- df.sort_values: 특정 열을 기준으로 데이터프레임을 정렬합니다.
df = df.sort_values(by='Age')
print(df)
# 출력값 :
# Name Age City
# 1 Anna 24 Paris
# 3 Linda 32 London
# 2 Peter 35 Berlin
2. 인덱스 정렬
- df.sort_index: 인덱스를 기준으로 데이터프레임을 정렬합니다.
df = df.sort_index()
print(df)
# 출력값 :
# Name Age City
# 1 Anna 24 Paris
# 2 Peter 35 Berlin
# 3 Linda 32 London
[병합 및 결합]
1. 데이터프레임 병합
- pd.merge: 공통 열이나 인덱스를 기준으로 두 데이터프레임을 병합합니다.
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['B', 'C', 'D'], 'value': [4, 5, 6]})
merged = pd.merge(df1, df2, on='key')
print(merged)
# 출력값 :
# key value_x value_y
# 0 B 2 4
# 1 C 3 5
2. 데이터프레임 결합 (행)
- pd.concat: 행(axis=0)을 따라 데이터프레임을 결합합니다.
df3 = pd.concat([df1, df2], axis=0)
print(df3)
# 출력값 :
# key value
# 0 A 1
# 1 B 2
# 2 C 3
# 0 B 4
# 1 C 5
# 2 D 6
3. 데이터프레임 결합 (열)
- pd.concat: 열(axis=1)을 따라 데이터프레임을 결합합니다.
df4 = pd.concat([df1, df2], axis=1)
print(df4)
# 출력값 :
# key value key value
# 0 A 1 B 4
# 1 B 2 C 5
# 2 C 3 D 6
'개발 > Python' 카테고리의 다른 글
[파이썬, Python] 네이밍 방법 총정리 (0) | 2024.07.11 |
---|---|
[파이썬, Python] pickle 활용법 총정리 (0) | 2024.07.10 |
[파이썬, Python] numpy 활용법 총정리 (0) | 2024.07.07 |
[파이썬, Python] 함수 만들기 (0) | 2022.04.15 |
[파이썬, Python] str 정리 (0) | 2022.04.05 |