Python/데이터 분석 기초
[머신러닝을 위한 파이썬] 3. pandas 활용 예제
동현 유
2021. 3. 18. 20:29
>> 완벽하게 알아야 하는 자료구조
- Series
- DataFrame
>> 알아야하는 문법
- 파일 읽어오기, 저장하기
- Series 생성방법
- DataFrame 생성방법
- DataFrame Col : 추가, 삭제, 이름변경, 새로운 데이터 할당, 선택적 불러오기
- loc / iloc
- Index 변경 (KEY 값 변경)
- Data drop
- Operation, BroadCasting
- inplace, map, apply
- decribe, unique
- Groupby & CrossTab & Pivat Table
- Gierarchical Index
- Aggregation
- Transformation
- Merge & Concat
- Join
1번과 2번 예제 설명은 여기를 참고
총 3개의 예제가 있다!
1,2번 문제.zip
0.41MB
3번.zip
0.38MB
#1. 답안코드
# 첫번째 방법 : groupby
def get_rating_matrix(filename):
# 윈도우 \, 그 외 os에서는 /
df = pd.read_csv('.\\'+filename)
return df.groupby(['target','source'])['rating'].first().unstack(fill_value = 0)
# 두번째 방법 : crosstab
def get_rating_matrix(filename):
# 윈도우 \, 그 외 os에서는 /
df = pd.read_csv('.\\'+filename)
return pd.crosstab(index=df.target,columns=df.source,values=df.rating,aggfunc='sum').fillna(0)
#2. 답안코드
def get_frequent_matrix(filename):
# 윈도우 \, 그 외 os에서는 /
df = pd.read_csv('.\\'+filename)
df['rating'] = 1
# groupby도 가능하다!
return pd.crosstab(index = df.source,columns=df.target,values=df.rating,aggfunc='sum')
#3. 답안코드
import numpy as np
import pandas as pd
# 1번
def createarr(row,col,mean,std):
return np.random.normal(mean,std,row*col).reshape(row,col)
# 2번
df = pd.read_csv("./01-23-2020.csv")
# 3번
def confirmed():
return df.groupby('Country/Region')['Confirmed'].sum()
# 4번
def confirmed():
result = pd.DataFrame()
result['01-23-2020'] = df.groupby('Country/Region')['Confirmed'].sum().sort_values(ascending = False)
return result
# 5번
def get_wuhan_confirmed(time):
df = pd.read_csv('.\\' + time + '.csv')
result = pd.DataFrame()
result[time] = df.groupby('Country/Region')['Confirmed'].sum().sort_values(ascending = False)
return result
# 6번
def merge(x,y):
data1 = get_wuhan_confirmed(x)
data2 = get_wuhan_confirmed(y)
result = pd.merge(data1,data2,on ='Country/Region',how='outer').fillna(0)
result['확진자 증가 수'] = result[y] - result[x]
return result