판다스(Pandas)에서 조건에 맞는 행 제외하는 방법판다스를 활용하다 보면 특정 조건에 맞는 행만 선택하거나 제외해야 하는 상황이 자주 발생합니다. 이 글에서는 판다스에서 특정 조건에 맞는 행을 제외하는 방법을 여러 가지 예제를 통해 살펴보겠습니다. 데이터 분석과 전처리 과정에서 매우 유용한 테크닉이니 꼭 알아두세요!조건에 맞는 행 제외하기: 기본 원리판다스에서 조건에 맞는 행을 제외하려면 부울 인덱싱(Boolean Indexing)과 ~ 연산자를 사용합니다. ~는 조건을 반전(negate)시켜 해당 조건에 맞는 행을 제외하도록 도와줍니다. import pandas as pd데이터프레임 생성data = {'이름': ['Alice', 'Bob', 'Charlie', 'David'],'나이': [25, ..
판다스 데이터프레임 문자열 조건 검색법 총정리데이터프레임 문자열 조건 검색 방법을 모아봤습니다.일반적인 방법== 조건을 이용하는 방법이 가장 일반적입니다.import pandas as pd# 예제 데이터프레임 생성data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [24, 27, 22, 32], 'City': ['New York', 'Los Angeles', 'Chicago', 'Miami']}df = pd.DataFrame(data)## Los Angeles 찾기result_and = df[df['City'] == 'Los Angeles']print(result_and)하지만, ==을 사용하면 정확히 일치한..
DtypeWarning 잘 불러오던 csv가 간혹 DtypeWarning 이라고 경고가 뜹니다. DtypeWarning: Columns (37,66) have mixed types. Specify dtype option on import or set low_memory=False. 특정 컬럼의 type이 섞여있어서 결정할 수 없다고 합니다. 그럼 다 object로 하지 않았나? 왜저러는걸까? 싶은데 컴퓨터가 인식을 그렇게한다니까 어떻게 할 수 있는 건 아닌 것 같습니다. 저 경고를 무시하고 코딩실행을 하니깐 확실히 작업속도가 현저히 느려졌습니다. 메모리 도둑이 따로없네요. 해결방법 해결방법은 두가지입니다. (1) 문제가 되는 컬럼의 타입을 정해준다 (2) csv에 쓰는 메모리 제한을 없애서 csv를 한번..
시트만 다른데 매번 다시 불러야하나? 판다스에서 엑셀시트를 불러오는 방법으로 보통 read_excel(sheet_name = '시트이름')을 쓰게 되는데 이러면 시트를 부를 때마다 excel을 부르고서 sheet_name을 다르게 해서 엑셀파일 자체를 다시 읽게 됩니다. 즉, 시간소비가 많다는 것이죠. (이런 시간낭비...) 그래서 엑셀 파일을 객체로 만드는 방법을 알아냈습니다. 판다스 내에 엑셀 파일을 객체로 불러와서 시트만 불러내는 방식을 사용할 수 있더라고요. 이 방식을 사용하면 엑셀파일은 불러와있는 상태에서 시트만 선택적으로 꺼내쓰는 방식으로 바뀝니다. 시간도 절약하고 시트관리가 좀 더 용이해집니다. 엑셀 파일 객체로 불러오기(ExcelFile) 판다스에 ExcelFile이라는 메쏘드가 있습니다...
pct_change의 업그레이드 판입니다. 특정 기간동안의 증가율을 계산하고 싶거나 수치가 필요할 때 rolling apply이 유용합니다. pct_change는 바로 위아래의 값만 퍼센트(백분율)로 나와서 내 맘대로 못하는 단점이 있는데 상황이 여러가지가 있고 백분율이 아닌 수치로 바꿀려면 다시 계산을 해야하는 번거로움이 있습니다. 그리고 위 아래의 증가율만 따지기 때문에 며칠 후의 것들의 증가율을 하려고 한다면 필터를 적용한 후 pct_change를 써야하는 번거로움이 있는데요. 이런 불편함을 확실히 없앨 수 있는 방법으로 rolling apply를 써보는 게 어떨까 싶습니다. 일단 apply는 lambda 기법으로 간단한 함수를 만드는 방법이므로 당연히 커스텀마이징이 가능합니다.다시말하면, 퍼센트나..
데이터 프레임의 데이터를 많이 다루는데 범주를 만들어야 하는 경우가 있습니다. 범주를 나누는 방법을 알려드립니다. 데이터 랜덤으로 만든 int와 float를 각각 컬럼으로 하고 데이터프레임을 예제로 하겠습니다. import pandas as pd import numpy as np import random df = pd.DataFrame({'int':random.sample(range(100),30),'float':np.random.randn(30)}) df 1. 동일길이로 나누기 데이터를 동일길이로 나눌려면 pd.cut()을 사용합니다. pd.cut()은 시리즈를 input값으로 해야합니다. 파라미터는 다음과 같습니다. pandas.cut(x, bins, right=True, labels=None, re..
데이터프레임 내에서 순위 구하는 방법입니다. 순위도 어찌보면 데이터 정렬을 하는 것입니다. 다만, 데이터를 순위로 변환하고 동점처리를 어떻게 할것인가에 따라 정렬이 달라집니다. 파라미터는 다음과 같습니다. df.rank(axis=0,method='average',ascending=True,..) axis : 0(defualt)는 행, 1은 열을 기준으로 함 method : 동점처리 기준, 방법은 average(defualt), min, max, first, dense 으로 5가지가 있음. ascending : True(default) 오름차순을 반영해 순위(가장 작은 값이 1위), False 내림차순을 반영해 순위(가장 큰 값이 1위) 동점 처리 순위를 하다보면 동점이 나오는 경우 어떻게 할지 정해야 합..
cheatsheet란 컨닝지라고 하는데 컨닝하는데 쓸 정도로 자주 사용하는 명령이나 기능을 쉽게 잘 정리한 인포그래픽을 말합니다. 일종의 요약본입니다. 코드는 특히나 자꾸 까먹습니다. 코드는 각각의 규칙들이 존재하고 그에 맞춰 써야하는데 양이 많기도 해서 다 외우기가 너무 어렵습니다. 그래서 cheatsheet를 만들어 한눈에 익히는데 도움을 주고자 만든 것들이 종종 있습니다. 판다스 cheatsheet 라고 코드를 한번에 요약해 놓은 인포그래픽이 나와서 공유하려고 합니다. 물론 판다스를 쓰는 기본적인 방법이나 경험들이 있어야 이해를 할 수 있을 것 같긴 합니다. 응용력을 가지고 있어야 하고 cheatsheet 말 그대로 문법을 정리만 해놓은 것입니다. 모든 문제가 해결되는 만능이 아님을 강조하고 또 강..
데이터프레임의 타입을 바꾸는 방법입니다. 사용 데이터는 국내 etf인 kosdaq 150 레버리지의 가격입니다. df.head() 데이터프레임 타입 확인하기 데이터프레임 타입을 확인하려면 dtypes를 이용합니다. df.dtypes 각 컬럼의 타입이 나옵니다. 지금 df 같은 경우 날짜만 datatime64[ns] 이고 나머지는 int64 입니다. 데이터프레임 타입 전체 한꺼번에 바꾸기 모든 타입이 같을 때는 df.astype('타입')을 하면 바뀌기 때문에 간단합니다. 물론 무조건 되는 건 아니고 서로 바뀔 수 있는 타입이라는 가정에서 된다는 얘기입니다. astype이 만능키가 아님을 강조합니다. astype은 다루기 쉬우니깐 요령 하나를 알려드릴까 합니다. 타입이 다른게 섞여있을 때 데이터프레임을 분..