3-3. 서울시에서 공개한 코로나19 발생동향 분석
Pandas String Method 판다스 문자열 메소드
Pandas 공식문서: Series String handlingdf.str.replace(a, b)
- a가 포함된 모든 문자열을 b로 변경 (일부만 같아도 교체)
- series에만 사용 가능
- 정규표현식 사용 가능
df.replace(a, b)
- a와 완전히 일치하는 데이터를 b로 변경 (완전히 같아야 교체)
- dataframe, series에 사용 가능
- 정규표현식 사용 가능, 정규표현식 사용 시 일부 교체 가능
둘의 차이가 나는 이유는?
.str
은 접근자는 series 문자열 형식에만 사용할 수 있는 series accessor(접근자)이기 때문
Pandas Transpose 판다스 전치행렬
- 전치행렬을 의미함.
- 열과 행, raws와 columns를 전환하는 것을 의미
- df
제목 셀1 제목 셀2 제목 셀3 내용 1 내용 2 내용 3 내용 4 내용 5 내용 6 - df.T
제목 셀1 내용 1 내용 4 제목 셀2 내용 2 내용 5 제목 셀3 내용 3 내용 6
Pandas Crosstab
- Pivot_Table을 사용하기 쉽게 만든 method
- groupby 이후 unstack()한 값과 동일함
Pandas 공식문서: pandas.DataFrame.unstack - cf. groupby를 이용한 더 다양한 연산 가능
Pandas Style과 background_gradient()
, bar()
Pandas 공식문서: Table Visualization
- Builtin Styles 부분 참고
df[조건식]
vs. df.loc[조건식]
결론 : 성능의 차이를 줄 뿐, 결과는 같음. 아래는 성능 순
- Best :
df.loc[조건식, columns]
df[조건식][columns]
- df에 두 번 접근하여 비효율적 :
df[조건식].loc[:, columns]
pd.crosstab(normalize=True)
vs. df[column] / df[columns]
판다스 공식문서에 따르면 crosstab의 normalize는 "Normalize by dividing all values by the sum of values"로 진행된다.df[column] / df[columns]
와는 다른 계산방법으로 normalize와 달리 합이 1이 되지 않는다.
cf. Pandas Cheat Sheet
3주차 과제. 타이타닉 판다스
헷갈리는 부분의 코드만 정리함.
df.isnull()
== df.isna()
Series.str.count vs. Series.str.contains
Series.str.count()
: 데이터에 있는 특정 문자열의 개수를 반환하는 method, nan 값이 있으면 float, 없으면 int
Pandas 공식문서: Series.str.countSeries.str.contains()
: 데이터에 특정 문자열의 존재 여부를 boolea으로 반환하는 method
Pandas 공식문서: Series.str.contains
3-4. 전국 신규 민간 아파트 분양가격 동향
Tidy Data, 깔끔한 데이터?
Hadley Wickham의 논문에 따르면 깔끔한 데이터란 아래와 같다.
"각 변수가 열이고 각 관측치가 행이 되도록 배열된 데이터이다."
참고: Tidy Data(깔끔한 데이터)
==> melt가 필요하다!
dtype 변경에서의 errors 처리
데이터 타입을 변경할때, error를 처리하는 방법은 'ignore', 'raise', 'coerce'가 있다.
- ignore: 무시하고 넘어간다, error가 발생한 데이터는 dtype이 변하지 않음.
- raise: error를 표시하고 실행을 중단한다.
- coerce: error가 난 부분을 없애고 dtype을 변경한다
ex. "100,000"의 dtype을 float 바꾼다면 coerce의 경우만 변경된다.
==> "100,000", error 표시, 10000
만약 경고를 무시하고 데이터 타입을 숫자형으로 변경한다면 astype()
보다는 pd.to_numeric
을 이용하는 것이 편하다.astype()
의 경우 errors의 argument에 'coerce가 존재하지 않아, 전처리 작업이 필요하기 때문이다.
'멋쟁이사자처럼 AIS7 > 오늘코드' 카테고리의 다른 글
[1024] ML Tools (0) | 2022.10.24 |
---|---|
[1013] EDA, Data Sampling, 파생변수를 이용한 Data 가공, 시각화(3-7 미작성) (0) | 2022.10.13 |
[1012] EDA, Tidy Data, KOSIS, 정규표현식 (0) | 2022.10.12 |
[1005] EDA (0) | 2022.10.05 |
[1004] EDA (0) | 2022.10.04 |
댓글