본문 바로가기

Python/pd. Pandas

(3)
[Python] 데이터 재구조화(reshape) : pd.crosstab() 사용해 교차표(cross tabulation) 분석을 하다 보면 원본 데이터의 구조가 분석 기법에 맞지 않아서 행과 열의 위치를 바꾼다거나, 특정 요인에 따라 집계를 해서 구조를 바꿔주어야 하는 경우가 있습니다. 재구조화(reshaping data)를 위해 사용할 수 있는 Python pandas의 함수들로 아래와 같이 다양한 함수가 있습니다. - (1) pivot(), pd.pivot_table() - (2) stack(), unstack() - (3) melt() - (4) wide_to_long() - (5) pd.crosstab() 이번 포스팅에서는 마지막으로 범주형 변수로 되어있는 요인(factors)별로 교차분석(cross tabulations) 해서, 행, 열 요인 기준 별로 빈도를 세어서 도수분포표(frequency table), 교차..
[Python] 판다스 데이터프레임(pandas dataframe) SettingWithCopyWarning 해결 기존 데이터프레임 일부를 복사하거나 인덱싱 후 값을 수정할 때 종종 발생한다. 기존 데이터프레임을 가져와(복사) 다른 데이터프레임을 만들 때 원본을 수정할 지 복사본을 수정할 지 몰라서 발생하는 오류라고 한다. 두 가지 해결 방법이 있는데, 하나는 경고를 무시하는 것이고 하나는 copy를 사용하는 것이다. 1. 경고 무시 pd.set_option을 사용한 경고문 제거 # SettingWithCopyError --> 오류 raise 로 코드 실행 X pd.set_option('mode.chained_assignment', 'raise') # SettingWithCopyWarning --> 실행은 되지만 경고문 뜸 pd.set_option('mode.chained_assignment', 'warn') # e..
[Python] Pandas DataFrame 행,열 삭제 ※ 행 삭제 drop() axis가 '0' 이라면 행 삭제, '1' 이라면 열 삭제 입니다. (default : 0) # index가 0인 행만 삭제 df = df.drop(index=0, axis=0) # index가 0,1,2,3인 행 삭제 df = df.drop(index=[0, 1, 2, 3], axis=0) 조건문 사용 # 열 값이 1234이 아닌 행(index)만 저장 df = df[df['col'] != 1234] ※ 열 삭제 drop() # 'col1', 'col2' 열 삭제 df = df.drop(columns=['col1', 'col2'], axis=1)