Python/pandas

    같은 column에서 numeric 자료만 골라내기

    Picking out numerical data from the same column in pandas (Conditional astype) DataFrame 작업을 하다 보면 하나의 column에 여러 형태의 data가 포함될 때가 많다. 특히 수치형 자료와 문자형 자료가 섞여 있는 경우는 매우 흔한데, 이런 케이스는 문자형 자료가 수치형 자료를 포괄하는 개념이기 때문에 연산의 필요성이 생길 때 문제가 생기는 경우가 많다. 이럴 때, 직관적으로 아래와 같이 Data Type을 변경하여 사용할 수 있는 경우도 많지만 그렇지 않은 경우도 있다. df['datetime'] = df['datetime'].astype('datetime64[ns]') # 날짜 / 시간형 자료로 변환하기 df['Value'] = ..

    Pandas에서 DateTime Indexing 응용하기

    데이터를 정제하다 보면, 시계열 자료를 다룰 일이 많다. datetime이라는 패키지만 따로 공부해야 할 정도로 Python의 datetime 타입을 다루는 방식은 가지각색이다. 그 중에서도 오늘은 pandas DataFrame의 DateTime을 indexing하는 방식을 포스팅하려고 한다. Slicing DataFrame의 loc 메서드를 사용하면 SQL과 비슷한 방식의 직관적인 indexing이 가능하다. 가장 직관적이고 쉬운 만큼 많이 활용하는 방식이다. 아래와 같은 간단한 DataFrame을 생성한다. 2021년 1월 1일부터 80일간의 데이터를 생성하였다. import numpy as np import pandas as pd from datetime import datetime as dt df..

    Pandas에서 결측치를 채워넣는 여러 방법들

    데이터 분석가의 재량을 넘어서서 현장의 문제가 존재하기 때문에, 아무리 좋은 데이터를 가져온다 하더라도 결측치는 존재할 수 밖에 없다. 학생 신분으로 실습을 할 때에는 결측치를 대부분 없앤 뒤 데이터를 사용하였지만, 회사에서 일을 하는 입장이 되니 정합성 있게 데이터를 채워넣는 일이 중요해졌다. 따라서 pandas에서 결측치를 단순히 없애는 방법이 아닌, 정교하게 채워넣는 기술들에 대해 정리해보려 한다. 1. fillna함수 응용하기 # fillna() 함수로 결측치 채워넣기 df.fillna(0) # 결측치를 0으로 채우기 df.fillna('a') # 결측치를 a라는 문자열로 채우기 df.fillna(method= 'ffill') # 뒤의 결측치를 앞의 값으로 채우기. 'pad'도 사용 가능하다. d..

    Pandas concat 함수 응용하기

    concat함수는 데이터를 재구조화할 때 가장 많이 사용하는 함수 중 하나일 것이다. 다양한 테이블을 방향에 상관없이 merging할 때 많이 쓰인다. Pandas에 merge라는 메소드가 따로 존재함에도, merge보다 concat함수를 많이 사용한다. merge의 경우 테이블 병합이 2개까지만 이루어지지만, concat의 경우 리스트 형태로 합치기 때문에 더욱 실용적이다. 기본 문법 pd.concat(objs, axis = 0, # 0일 경우 행병합(위아래 합치기) 1일 경우 열병합(좌우로 합치기). Default는 0. join = 'outer', # 'outer'의 경우 outer join, 'inner'의 경우 inner join. Optional. ignore_index = False, # T..