콘솔워크

[python] dataframe 정리 본문

프로그래밍/python

[python] dataframe 정리

콘솔워크 2022. 8. 10. 13:25
반응형

Dataframe

python pandas 라이브러리에는 dataframe이라는 자료형이 존재합니다.
dataframe을 잘 가지고 노는 것이 python 작업 중 30%는 차지하는 것 같습니다.
이에 자주쓰는 dataframe 코드들에 대해서 정리하고, 여기서 자주 꺼내쓸 생각입니다.

loc

  1. 데이터프레임의 행이나 컬럼에 label이나 boolean array로 접근.
  2. location의 약어로, 인간이 읽을 수 있는 label 값으로 데이터에 접근하는 것이다.

loc code example

  • 라벨이 1인 데이터 접근
    df.loc[1]
  • 라벨이 "name" 인 라벨 접근
    df.loc[:, "name"]
  • 복수개의 라벨 추리기
    df = df[["name", "age", "city"]]
  • 특정열에 포함된 문자열로 접근
    df = df.loc[df['칼럼1'].str.contains('단어1|단어2')]
  • 특정열에 포함되지 않는 문자열로 접근
    df = df.loc[~df['칼럼1'].str.contains('단어1|단어2')]

iloc

  1. 데이터프레임의 행이나 컬럼에 인덱스 값으로 접근.
  2. integer location의 약어로, 컴퓨터가 읽을 수 있는 indexing 값으로 데이터에 접근하는 것이다.

ioc 행접근 code example

  • 첫번째행에 접근
    df.iloc[0]
  • 두번째행에 접근
    df.iloc[1]
    • 마지막행에 접근
    df.iloc[-1]

ioc 열접근 code example

  • 첫번째 열 접근
    df.iloc[:,0]
    • 두번째 열 접근
    df.iloc[:,2]
    • 마지막 열 접근
    df.iloc[:,-1]

map

특정열을 필터링 할 때 사용

  • 컬럼A의 길이가 10인 데이터를 추출
    df = df[df['A'].map(lambda x: len(str(x)) == 10)]

rename

특정 열의 이름을 바꿀 때 사용한다

rename code

  • 'old_col' 열 이름을 'new_col' 이름으로 변경
    df = df.rename(columns={"old_col": "new_col"})

groupby

특정 열(들)을 기준으로 group by 하여 sum을 출력한다.

groupby code

  • 컬럼 "product", "compnay"로 group을 만들고 count열은 sum으로 합치기
    df_group = df.groupby(['product', 'company'])['count'].sum().reset_index()

sort

특정 열을 기준으로 sort를 진행한다.

sort code

  • '순번'열을 기준으로 오름차순 정렬
    df = df.sort_values(by='순번', ascending=True)

filter

특정 열의 값을 기준으로 판단

filter code

  • 특정 열의 값이 없는 (Null인) 것만 추출
    df_isnull = df[df["ColumnName"].isnull()]
  • 특정 열의 값이 있는 (Null이 아닌) 것만 추출
    df_notnull = df[df["ColumnName"].notnull()]
  • 특정 열의 값이 있는것만 추출
    df_notnull = df[df["ColumnName"] != ""]
반응형