pandas 5

[pandas] 그룹별 누적합 집계하는 방법

안녕하세요, 오늘은 pandas 그룹별 누적합을 구하는 방법에 대해서 알아 보겠습니다. 1. 간단한 데이터로 이해하기 아래와 같이 날짜, 과일종류, 판매량 3개 컬럼으로 이뤄진 데이터프레임이 있습니다. 만약 판매량의 누적합을 구하고 싶다면, cumsum() 을 통해서 쉽게 구할 수 있죠. 하지만, 과일종류별 누적합, 일자별 누적합 등 그룹별로 누적합계를 구하려면 어떻게 해야 할까요?? 아래 두 결과 코드는 groupby 내 컬럼 순서만 다르다는 차이만 있으나, 결과는 완전히 서로 다릅니다. 1. 일자별 누적합 level=[0] 에 해당하는 값이 'Date' 이기 때문에 일자별 기준으로 판매량 그룹 누적합계를 구합니다. 2. 과일별 누적합 level=[0] 에 해당하는 값이 'Fruit' 이기 때문에 과일..

SW개발/python 2022.07.31

[python] pandas read_csv 데이터 읽을 때 날짜/시간 파싱 하기

안녕하세요, pandas read_csv 함수를 통해서 데이터를 읽을 때, 날짜/시간 데이터 파싱하는 간단한 방법을 소개합니다. read_csv 함수 내 파라미터를 세팅하는 것인데요. 아래와 같습니다. pd.read_csv('input.csv', parse_dates=['컬럼명']) 그럼 데이터를 직접 불러와 보겠습니다. 첫번째, 파라미터 없이 read_csv () 아무런 파라미터 세팅하지 않고 실행하면 'Date' 컬럼 타입은 Object가 된다. 두번째, 파라미터 세팅하여 read_csv() parse_dates 라는 파라미터에 파싱할 컬럼명을 넣어준다. 그럼 'Date' 컬럼 타입은 아래와 같이 datetime 으로 세팅 되어 불러와 진 것을 볼 수 있다.

SW개발/python 2022.06.01

[python] 연도, 월별 손쉬운 for loop 생성 방법

데이터를 다루다보면 시계열 정보를 가공하고 처리해야할 경우가 많습니다. 예를들어 2021년 1월부터 12월까지 데이터를 수집하거나, 그 기간 동안만 데이터를 분석한다던지 여러가지 케이스가 있죠. 이번에는 이런 연도, 월별 등 손쉽게 for 문을 생성하는 방법을 공유하고자 합니다. 기존 방법 기존에는 무식하게(?) 하나의 리스트에 조회할 기간 정보를 넣었었죠. YYYYMM = ['202001','202002','202003','202004','202005','202006','202007'] for date in YYYYMM: print('조회결과: {}'.format(date)) 조회결과: 202001 조회결과: 202002 조회결과: 202003 조회결과: 202004 조회결과: 202005 조회결과: ..

SW개발/python 2021.07.29

[ERROR] ParserError: Error tokenizing data. C error: Expected 5 fields in line 3, saw 6

Pandas 데이터 읽기 Error 개방되어 있는 데이터 CSV 파일을 읽다보면 여러가지 에러를 만나게 되는데요. ParserError: Error tokenizing data. C error: Expected 5 fields in line 3, saw 6 위 문제의 원인은 파일포맷과 관련 있습니다. 파일데이터가 저장될때 '\t' 을 구분자(delimiter)로 하여 저장되어 있을 것입니다. 따라서 정상적으로 읽어오기 위해서는 적당한 파라미터 추가를 해야합니다. df = pd.read_csv('blablabla.csv', sep='\t') 조금 더 디테일한 정보는 아래 스택! 참고하세요 stackoverflow.com/questions/18039057/python-pandas-error-tokenizin..

[ERROR] UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte

pandas 파일읽기 ERROR pandas 에서 CSV 읽기(read_csv), 엑셀 읽기(read_excel) 등 파일 읽어 들일때, 가끔 아래와 같은 에러를 내뱉는 경우가 있습니다. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc0 in position 0: invalid start byte 인코딩의 문제로 아래와 같이 "encoding='cp949'" 또는 "encoding='eun-kr'" 파라미터로 추가함으로써 해결할 수 있습니다. import pandas as pd df = pd.read_csv('blabla.csv', encoding='cp949') import pandas as pd df = pd.read_csv('blabla.csv',..