판다스(pandas) 데이터 분석 라이브러리
판다스는 데이터 처리와 분석을 위한 파이썬 라이브러리로, 특히 테이블 형식의 데이터나 시계열 데이터를 다루기에 매우 유용합니다.
주요 기능
- DataFrame: 2차원 라벨링된 데이터 구조. 엑셀의 스프레드시트나 SQL의 테이블 같은 형태.
- Series: 1차원 라벨링된 배열.
- 데이터 입출력: 다양한 파일 형식(CSV, Excel, SQL 등)의 데이터를 불러오고 저장하는 기능.
- 데이터 정제: 결측치 처리, 중복 처리, 데이터 변환 등의 기능.
- 데이터 필터링 및 정렬: 조건에 따른 데이터 필터링, 정렬 기능.
- 통계 및 집계: 평균, 중앙값, 최대값, 최소값 등의 통계값 계산 및 데이터 집계 기능.
- 데이터 병합 및 조인: 여러 데이터셋의 병합 및 조인 기능.
- 시계열 데이터 처리: 날짜 및 시간 데이터의 처리 및 변환 기능.
예제
1. DataFrame 생성하기
import pandas as pd
data = {
'name': ['John', 'Anna', 'Peter', 'Linda'],
'age': [28, 22, 35, 58],
'city': ['New York', 'Paris', 'Berlin', 'London']
}
df = pd.DataFrame(data)
print(df)
name age city
0 John 28 New York
1 Anna 22 Paris
2 Peter 35 Berlin
3 Linda 58 London
2. CSV 파일에서 데이터 불러오기
df = pd.read_csv('filename.csv')
print(df.head())
column1 column2 column3
0 val1 val2 val3
1 val4 val5 val6
...
3. 결측치 처리하기
df.fillna(0, inplace=True)
4. 데이터 필터링
filtered_df = df[df['age'] > 30]
print(filtered_df)
name age city
2 Peter 35 Berlin
3 Linda 58 London
5. 데이터 정렬하기
sorted_df = df.sort_values(by='age', ascending=False)
print(sorted_df)
name age city
3 Linda 58 London
2 Peter 35 Berlin
0 John 28 New York
1 Anna 22 Paris
6. 통계값 계산하기
mean_age = df['age'].mean()
print(mean_age)
# 35.75
7. 데이터 병합하기
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value1': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['A', 'B', 'D'], 'value2': [4, 5, 6]})
merged_df = pd.merge(df1, df2, on='key', how='inner')
print(merged_df)
key value1 value2
0 A 1 4
1 B 2 5
8. 데이터 중복 제거하기
df = pd.DataFrame({
'A': ['one', 'one', 'two', 'two', 'two', 'three', 'four'],
'B': [1, 1, 2, 2, 2, 3, 4]
})
no_duplicates_df = df.drop_duplicates()
print(no_duplicates_df)
A B
0 one 1
2 two 2
5 three 3
6 four 4
9. 조건에 따른 데이터 변환하기
df['age_group'] = df['age'].apply(lambda x: 'young' if x < 30 else 'old')
print(df)
age age_group
0 25 young
1 45 old
2 30 old
...
10. 그룹별 통계값 구하기
grouped = df.groupby('city')
mean_values = grouped['age'].mean()
print(mean_values)
city
Seoul 32.5
Busan 31.0
Daegu 29.0
11. 시계열 데이터 다루기
date_rng = pd.date_range(start='2022-01-01', end='2022-12-31', freq='M')
df = pd.DataFrame(date_rng, columns=['date'])
df['data'] = np.random.randint(0, 100, size=(len(date_rng)))
print(df)
date data
0 2022-01-31 45
1 2022-02-28 23
...
마치며
판다스는 파이썬에서 데이터 분석을 위해 제공하는 도구입니다. 판다스를 사용하면 대규모의 데이터를 효과적으로 처리할 수 있게 됩니다. 위의 예제들은 기본적인 기능들만을 다루고 있으므로, 판다스의 더 많은 기능을 알아보시려면 공식 문서나 다른 참고자료를 통해 꾸준히 학습하는 것이 중요합니다. 아래 공식링크에 들어가서 한번 봐보세요 :)