파이썬의 데이터프레임 라이브러리 pandas 사용법에 대해 정리
애매하게 알고있던 것만 따로 정리한다.
동일한 그룹끼리 묶어서 연산해주는 연산자다
df.groupby('label')
--> 객체
그룹별로 데이터를 집계, 요약하는 방법
df.groupby('label').mean()
df의 'label'그룹을 모두 모아서 평균을 구한다!
여러 그룹을 동시에 선택하려면 리스트로 넣어라
df.groupby(['city', 'label']).mean()
각각 다른 함수를 적용하고싶다
df.groupby('city').agg({'price':np.mean, 'quantity':np.sum})
groupby는 객체를 반환하므로 반복문을 통해 각각 그룹별로 호출할 수 있음
for g in df.groupby('city'):
print(g)
get_group('그룹이름')을 통해 원하는 그룹만 가져올 수 있음
SQL의 join과 유사하다고 생각한다.
# pd.merge(x, y)로도 가능
x.merge(y,
how="inner",
on=None, # 기준이 될 key
left_on=None, # left DataFrame의 변수를 key로
right_on=None,# right DataFrame의 변수를 key로
left_index=False, # left DataFrame의 index를 key로
right_index=False,# right DataFrame의 index를 key로
sort=True, # merge 후 정렬
suffixes=('_x', '_y')) # 중복되는 변수 이름에 접미사 부여
피벗테이블을 만드는 pd.pivot_table()과 tidy 데이터로 만든는 pd.melt()
pd.pivot_table(data, # DataFrame
index, # 행 위치에 들어갈 열
values,# 열 위치에 들어갈 열
aggfunc='mean') # 데이터 집계 함수
pivot table이 필요한 자료만 뽑아 새로운 표를 만든다면, melt()는 모든 자료를 한칸에 하나씩 모두 나타낸다.
pivot과 melt는 비슷한데 다르다. 헷갈리지말자!
pd.melt(data,
id_vars=['id1', 'id2', ...], # 풀어놓을 열 이름
var_name, # 새로 생길 표에서의 id_vars 이름
value_name) # 새로 생길 표에서 values의 이름
pd.read_clipboard()
엑셀이나 스프레드시트에서 복사한 표를 DataFrame형태로 그대로 불러온다!
다만 같은 운영체제 내에서만 작동한다고 한다. 서버에서 작업해서 로컬과 서버의 운영체제가 다르거나 colab을 이용하면 사용하지 못한다. 로컬에서 작업을 잘 안하는 나는 (하더라도 wsl을 쓰는데) 사용하기 힘들 것 같다
styling
jupyter notebook에서만 잘 보이는 것 같다. (html/css를 사용하기 때문인가)
표에 색깔을 넣거나, 셀에 차트를 그린다거나 interacticve 하게 만들 수 있는데, 필요하면 찾아서 쓰자...