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기 박조은 강사의 자료
'TIL > 파이썬' 카테고리의 다른 글
22.11.01 시각화 방식비교 lambda,map()함수 (0) | 2022.11.02 |
---|---|
22.10.12 (0) | 2022.10.12 |
오늘 공부한거 요약해보기 (0) | 2022.10.10 |
시리즈와 데이터프레임 (0) | 2022.10.06 |
프로그래머스 문제풀기 - 핸드폰 번호 가리기 (0) | 2022.10.02 |
댓글