일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 데이터마케팅분석
- Onehot인코딩
- ai school
- 소프트맥스함수
- 시그모이드함수
- 멋쟁이사자처럼
- ai 스쿨 7기
- AI 데이터 분석 트랙
- 기초100제
- Python
- OneHotEncoding
- 데이터분석가
- 멋쟁이사자처럼 ai school 7기
- 멋사 ai
- 2022 AI 온라인 실무 교육
- 딥러닝
- 코드업 기초100제
- 데이터 분석
- 파이썬
- 코딩테스트
- 코드업100제
- 고객데이터분석
- 고객세그먼트
- 머신러닝
- 캐글데이터분석
- 데이터분석
- RFM
- 코드업
- 앨리스
- RFM분석
- Today
- Total
초봉5센티미터
TIL 6. Pandas 기초와 Seaborn 본문
1. 판다스에서 컬럼 가져오기
- 컬럼 가져오기: df[ [ ] ]
- 행(index) 가져오기: df.loc[[인덱스 값!]]
- df.set_index(컬럼명).loc["인덱스값"]: df.set_index()
- `loc`: 행을 기준으로 데이터프레임을 가져옴, 라벨이나 boolen array로
- `iloc`: 인덱스를 기준으로 데이터프레임을 가져옴
str.contains ->특정 값을 찾는것
df["약품명"].str.contains("vita") #하면 vita 들어간것만 True
df[df["약품명"].str.contains("vita")] # 이렇게 df에 넣어주면 True인것만 출력
df["약품명"].str.upper() # 모든문자 대문자로 출력
df["약품명"].str.upper() # 모든문자 소문자로 출력
# 특정 금액 이상의 가격에 해당되는 데이터프레임을 가져오기
df[df["가격"]>3000]
#정렬하기 sort_values 사용
df.sort_values(by="가격")
df.sort_values(by="가격",ascending= False) # 내림차순으로 정렬
#2개 이상의 변수로 정렬
df.sort_values(by=["가격", "약품명"], ascending=[False, True]) #[]로 묶어줘야함
#저장하고 불러오기
# to_csv 를 통해 csv 파일로 저장
df.to_csv("drug.csv") # drug.csv로 저장
# 저장된 csv 파일을 읽기
pd.read_csv("drug.csv")
-> 이렇게 저장하면 다운로드 파일 엑셀에서 글자가 깨지는 증상
encoding = "cp949" 해줘야함
df.to_csv("drug.csv",index=False, encoding = "cp949" ) #index=True 이면 unnamed라는 인덱스가 생성됨 False해야 없어짐
pd.read_csv("drug.csv", encoding = "cp949" )
relplot : 두 가지 변수의 관계를 나타내기 위해 주로 사용
displot : 변수 하나 혹은 두개의 값 분포를 나타내기 위해 주로 사용
catplot : 범주형 변수와 연속형 변수간의 관계를 나타내기 위해 주로 사용
Seabon 시각화:
sns.countplot() : 이산값을 나타내는 그래프 (각 범주에 속하는 데이터의 개수를 막대그래프로 나타냄)
- ex) 1학년 1~6반, classroom별 인원 파악하기 그래프 등 에 쓸 수 있음 - 그래프 축 변경 가능 - (data=df, x=”dataset”) ==> x축을 기준으로 그래프 그려짐 // y=“dataset”하면 y축 기준으로 그래프 그려짐
sns.barplot() :
기본값 : 평균
검은 막대(ci = confidence interval) = 신뢰구간 - sns.barplot(data=df, x=“dataset”, y=“x”, ci=“sd”) ==> sd는 표준편차 - n_boot : 표본을 몇개할건지 (디폴트 : 1000) - 큰 데이터로 시각화할 때, ci 넣으면 시간 오래걸림(표본추출한다는게 ~ 출구조사 느낌) -> ci 빼는거 추천! - 대표값만 나타내기 때문에 자세한 표현 어려움 ——> boxplot 이용(분포를 더 잘 확인할 수 있음)
sns.boxplot() - 이상치가 있을 경우 박스표시
- 히스토그램과 비교 시 단점 : Robust하다. 중앙값은 잘 변하지않음. 값이 변해도 사분위수가 정해져있으면 변하지않는다.
sns.violinplot - 히스토그램의 밀도를 나타낸 것을 마주보고 그린 값 - kdeplot으로 그린 그래프를 x축을 기준으로 마주보고 그린 그래프임 - 어디에 많이 몰려있냐에 따라 그래프 모양이 달라짐
df.hist() : 히스토그램 - 정해진 계급에 변량이 포함되어 있는 정도를 표로 나타낸 것, 어떤 기준에 의한 수의 분포 - bins로 막대 몇개로 그려줄 것인지 설정 가능(디폴트값 : 10), 계급의 수를 나타냄
sns.displot() : 데이터셋에 대한 히스토그램 확인가능
hue - 색상을 나타낸다. 그룹바이와 비슷, 레이블(카테고리)를 구별할 수 있는 기능
- KDE parameter - 커널 밀도 추정(kernal density estimation) 그래프로, 히스토그램이 절대량(count)을 표현한다면 kdeplotdms 상대량(비율)을 시각화 히스토그램과 마찬가지로 한개 혹은 두개의 변수에 대한 분포를 그릴 수 있음
- 밀도를 추정한 다음 이를 마주보고 그린 것이 violinplot이다
. (부드러운 그림4를 데칼코마니로 찍어낸게 violinplot) - 즉, 밀도 추정 그래프이다. hue값 지원안하는 경우도 있음
sns.scatterplot() - 수치변수간의 분포를 확인하고자 할 때 사용 / 범주형 그래프에도 사용되기도 함(but 추천X) - ex) sns.scatterplot(data=df, x="x", y="y", hue="dataset")
sns.regplot() - scatterplot에선 hue 지원하지만 여기선 X => 데이터별 표현하기 위해선 Implot 쓰면 됨 - ex) sns.regplot(data=df, x="x", y="y")
sns.lmplot() - displot처럼 데이터별 분포 확인 가능 - hue 지원 - 그래프에서 반투명 영역은 신뢰구간을 의미
'교육 > 멋쟁이사자처럼 AI School 7기' 카테고리의 다른 글
TIL 8. EDA (2) (0) | 2022.09.27 |
---|---|
TIL 7. EDA (1) (0) | 2022.09.27 |
TIL 5. Python (2) (1) | 2022.09.20 |
TIL 4. Python (1) (1) | 2022.09.20 |
TIL 3. [심화] 같이 푸는 Python (0) | 2022.09.16 |