본문 바로가기
서비스 기획/☁️ 데이터 분석 공부

[췻쉿] query, assign, type, 문자열, print

by 림뽀 2023. 2. 26.
반응형

Pandas DataFrame cheatsheet

데이터 분석을 한층 편리하게 해 줄 여러 가지 기능들

내가 아직 외우지 못한 기능을 한 번에 찾을 수 있게 모아놨다.

 

데이터프레임 복사본 만들기: df.copy()

df_new = df_raw.copy()

 

원하는 조건으로 추출하기: df.query()

아래 두 개는 동일한 결과를 만드나, query를 쓰면 "df."를 컬럼 앞에 항상 붙일 필요가 없다는 장점이 있음.

#1
df.query('컬럼명>10')
#2
df[df.컬럼명>10]

 

여러 파생변수 한 번에 추가하기: df.assign()

df.assign(뉴컬럼명 = df.컬럼1 + df.컬럼2,
          뉴컬럼명2 = (df.컬럼1 + df.컬럼2) / 2)
          
#lamdba로 더 간단히 쓰고 싶을 경우
df.assign(뉴컬럼명 = lambda x: x.컬럼1 + x.컬럼2,
 		  뉴컬럼명2 = lambda x: x.뉴컬럼명 / 2)

 

Type 확인 및 변경: df.dtypes, df.astype(타입)

Type 확인하기: df.dtypes

Type 변경하기: df.astype(타입)

  • 컬럼이 많을 경우 type을 변경하지 않을 컬럼을 index로 설정함 → 타입 변경 → reset_index
df.set_index(['sris_id','sris_name','epsd_id','epsd_name'],inplace=True)
df = df.astype(float)
df.reset_index(inplace=True)

 

text 이어 붙이기: '문자'.join(리스트)

epsd_filter = df2.epsd_id.to_list()
epsd_filter = '|'.join(epsd_filter)

 

여러 문자열을 포함하지 않는 데이터 추출: df[~df.컬럼명.str.contains('문자열1 | 문자열2 | 문자열3')]

ex_list = ['문자열1', '문자열2', '문자열2']
ex_list = '|'.join(ex_list)
df[(~df.gnr_epsd_name.str.contains(ex_list))]

 

Print 포맷 맞추기: f'{~~}'

name = 'Kate'
age = 30
num = 3.1414141

#my name is Kate and my age is 30
f'my name is {name} and my age is {age}'
'my name is %s and my age is %d' %(name,age) 

#숫자 format
f'{num:.2f}' #3.14

 

참고한 링크:

 

[python] 여러 문자열 포함하는 모든 행 검색 - pandas

어떤 문자열을 포함하는 행을 찾기 위해선 contains라는 함수를 사용해야 한다. 만약 여러 문자열을 포함하는 모든 행을 찾고 싶다면 어떻게 해야할까? 다섯개 정도까지는 직접 &와 |를 이용해서

hyang2data.tistory.com

 

[Pandas] dataframe 문자열 포함/미포함 조건 필터링

0. 특정 문자열과 일치하는 데이터 필터링 dataFilter = df['col_name'] == 'check_data' venezuela = df[dataFilter] 1. 특정 문자열을 포함하는 데이터 필터링 dataFilter = df['col_name'].str.contains("str1|str2|str3") venezuela = df

biji-jjigae.tistory.com

 

by Mika Baumeister

반응형

댓글