TIL/파이썬

22.10.30

monawa 2022. 10. 30.
728x90

pandas 연습문제

 

1. groupby 

 

1개만 묶기

df.groupby("묶고 싶은 컬럼")["원하는 값 컬럼 "].원하는 연산 ()

ex

df.groupby("class")["fare"].mean()
# class별 평균 fare계산하기

여러개의 함수를 연상하고 싶을떄  agg를 사용

df.groupby("묶고 싶은 컬럼")["원하는 값 컬럼 "].agg([원하는 연산1,원하는연산2] )

 

ex

df.groupby("class")["fare"].agg(["mean","sum"])\
# 클래스별 fare의 평균, 합계 계산하기

 


2개 이상으로 그룹화하기 

df.groupby(["묶고 싶은 컬럼1","묶고 싶은 컬럼2"])["원하는 값 컬럼 "].agg(원하는 연산 )

ex

df.groupby(["class","who"])["fare"].agg(["mean","sum"])
#위랑 같은식에 그룹만 who추가

각 컬럼마다 원하는 함수결과값으로 하기

df.groupby(["묶고 싶은 컬럼1","묶고 싶은 컬럼2"])["원하는 값 컬럼 "].agg({"컬럼명" : "함수" })

df.groupby(["class","who"]).agg({"age": "mean","fare":"mean", "alive":"count"})
#위에 식에age는 평균 , alive 는 count 값추가

그룹바이 상태에서 describe 값 확인해보기

df.groupby(["묶고 싶은 컬럼1","묶고 싶은 컬럼2"])["원하는 값 컬럼 "].describe()

df.groupby(["alive","class"])["fare"].describe()

 


pivot table 사용해보기

pd.pivot_table(data, values, index, columns, aggfunc='mean(함수)')

pd.pivot_table(df,"fare", "survived",aggfunc='mean')
# survived에 평균 운임계산하기


 

조건에 맞는 결과만 추출하기

df [(조건 1) |=또는 &=그리고 (조건)]

df[(df["survived"]==1) &(df["fare"]>100)]["age"].mean()
# 생존자이고 운임이 100이상이떄 평균나이
31.60888888888889

정렬하기

sort_values(ascending=False)

기본 정렬 방식은 오름차순(ascending)
내림차순으로 정렬하고 싶다면 ascending 옵션을 False로 설정!

a = df.groupby("class")["age"].mean()
a.sort_values(ascending=False)

 


시각화하기 

countplot

sns.countplㅐt(data , x ,hun=(색을 다르게할컬럼조건))

sns.countplot(data=df,x="deck",hue="survived")

barplot

sns.barplot(data=df,x="deck",y="age",hue="alive")

pointplot

sns.pointplot(data=df,x="deck",y="age",hue="alive")

 


상관계수 구하기

.corr()

df_corr = df[["fare","age","pclass"]].corr()
df_corr

 

시각화하기

heatmap

sns.heatmap(df_corr , annot=True, cmap='RdYlGn_r')

mask 사용하기

 

mask = np.triu(np.ones_like(df_corr))
sns.heatmap(df_corr , annot=True, cmap="winter_r",mask =mask)

인용자료 :

멋쟁이사자처럼 AI School 7기 박조은 강사의 자료

728x90

댓글