[머신러닝을 위한 파이썬] Pandas #2
2024. 12. 26. 02:42ㆍMOOC
1. Group By 및 Aggregation
데이터를 특정 열 기준으로 그룹화하고, 합계 등을 계산.
import pandas as pd
ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings',
'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'],
'Rank': [1, 2, 2, 3, 3, 4, 1, 1, 2, 4, 1, 2],
'Year': [2014, 2015, 2014, 2015, 2014, 2015, 2016, 2017, 2016, 2014, 2015, 2017],
'Points': [876, 789, 863, 673, 741, 812, 756, 788, 694, 701, 804, 690]}
df = pd.DataFrame(ipl_data)
grouped_points = df.groupby("Team")["Points"].sum()
print(grouped_points)
h_index = df.groupby(["Team", "Year"])["Points"].sum()
print(h_index)
2. Pivot Table과 Crosstab
데이터를 테이블 형식으로 재구조화.
df_phone = pd.DataFrame({
'date': ['2014-11-15', '2014-11-15', '2014-11-16'],
'duration': [34.429, 13.0, 23.0],
'item': ['data', 'call', 'call'],
'month': ['2014-11', '2014-11', '2014-11'],
'network': ['data', 'Vodafone', 'Meteor']
})
pivot_table = df_phone.pivot_table(
values="duration",
index="month",
columns="network",
aggfunc="sum",
fill_value=0
)
print(pivot_table)
crosstab = pd.crosstab(
index=df_phone['month'],
columns=df_phone['network'],
values=df_phone['duration'],
aggfunc='sum'
).fillna(0)
print(crosstab)
3. 데이터 병합
두 데이터프레임을 다양한 방식으로 병합.
df_a = pd.DataFrame({
'subject_id': ['1', '2', '3', '4', '5'],
'test_score': [51, 15, 15, 61, 16]
})
df_b = pd.DataFrame({
'subject_id': ['4', '5', '6', '7', '8'],
'first_name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
'last_name': ['Bonder', 'Black', 'Balwner', 'Brice', 'Btisan']
})
merged_inner = pd.merge(df_a, df_b, on='subject_id', how='inner')
print(merged_inner)
merged_left = pd.merge(df_a, df_b, on='subject_id', how='left')
print(merged_left)
4. 데이터 저장 및 불러오기
Pandas를 사용하여 데이터를 파일로 저장하고 불러오기.
df_routes = pd.DataFrame({
'route_id': [1, 2, 3],
'source': ['A', 'B', 'C'],
'destination': ['X', 'Y', 'Z']
})
df_routes.to_csv("routes.csv", index=False)
loaded_routes = pd.read_csv("routes.csv")
print(loaded_routes)
'MOOC' 카테고리의 다른 글
[머신러닝을 위한 파이썬] Case Study - Air Passengers (0) | 2024.12.26 |
---|---|
[머신러닝을 위한 파이썬] Visualization - matplotlib (0) | 2024.12.26 |
[머신러닝을 위한 파이썬] Pandas (0) | 2024.12.26 |
[머신러닝을 위한 파이썬] Numerical Python (Numpy) Overview and Usage (1) | 2024.12.22 |
[머신러닝을 위한 파이썬] Basic Linear Algebra (0) | 2024.12.22 |