26_EDA(4)

ryu·2023년 6월 2일
0

Pandas에서의 반복문

  • iterrows()를 사용하는 것이 좋음
  • Pandas의 데이터프레임은 대부분 2차원
  • 이럴 때 for 문을 사용하면 n번째라는 지정을 반복해서 가독률이 떨어짐
  • 따라서 itterows()를 사용하는 것이 좋고 받을 때 인덱스와 내용으로 나누어 받는다는 것만 주의

멀티인덱스에서 비사용 level의 제거

  • 엑셀로 정의된 표를 데이터로 불러오다보면 index가 다중구조로 되어있는 경우가 있음

  • 예컨대 범죄 종류에서 첫 단계로 강도 - 폭행 - 살인으로 나누어져있고, 각각에서 발생 - 검거 등으로 나뉜 경우 멀티인덱스가 됨

  • 이런 경우 데이터 활용을 위해서 하나의 단계로 합쳐주는 등의 작업이 필요한데 이 때 get_level_values() 메서드를 사용할 수 있음

    • 예시

      crime_station.columns	# 컬럼 조회
      """
      MultiIndex([('강간', '검거'),
      						('강간', '발생')])
      """
      
      crime_station.columns.get_level_values(0)[0] + crime_station.columns.get_level_values(1)[0]
      # 강간검거

      위와 같은 과정을 반복문을 활용하여 index를 정리해줄 수 있음

피벗테이블

  • 특정 인덱스를 기준으로 데이터를 정리할 때 사용
  • pd.pivot_table(데이터프레임, index, aggfunc)
    • index에는 어떤 인덱스를 기준으로 정리할 것인지, aggfunc에는 어떤 연산을 적용할 것인지를 넣어줌
    • 예를 들어 aggfunc=np.sum이라면 총합을 계산함

컬럼 끼리의 연산

컬럼을 컬럼으로 나누기

  • crime_anal_gu[컬럼1] / crime_anal_gu[컬럼2]

다수의 컬럼을 하나의 컬럼으로 나누기

  • crime_anal_gu[[컬럼1, 컬럼2]].div(crime_anal_gu[컬럼3], axis=0)

다수의 컬럼을 다수의 컬럼으로 각각 나누기

  • crime_anal_gu[컬럼리스트1].div(crime_anal_gu[컬럼리스트2].values)
  • 이때 컬럼리스트1과 2의 길이가 다르면 에러가 발생함

컬럼 이름 변경

  • .rename()
    • 변경 전 컬럼 이름을 key, 변경하려는 컬럼 이름을 value로 한 딕셔너리 형태로 인자로 넣어줌

0개의 댓글