pandas
OverflowError: Python int too large to convert to C long 해결법
df['price'].astype('int') astype(int)를 했는데 이런 에러가 발생했다. OverflowError: Python int too large to convert to C long 찾아보니 숫자가 sys.maxsize 보다 크면 이런 에러가 발생할 수 있다고 해서 sys.maxsize를 확인해봤다. 내 데이터 중엔 이 숫자보다 큰 데이터는 없는것 같은데 뭐가 문제인지 모르겠다. 어쨌든 해결방법은 astype(int) 대신 pd.to_numeric을 사용하면 된다. df['price'] = pd.to_numeric(df['price'])
df.str.contains 사용 시 발생 에러 - ValueError: Cannot mask with non-boolean array containing NA / NaN values
프로젝트 진행 중 가격에 ' ~ '가 들어간 데이터가 있어서 drop 해 주기 위해 df.str.contains를 사용했는데 에러가 발생했다. df2.loc[df2['price'].str.contains('~'), 'price'] = 0 에러 내용은 다음과 같다. ValueError: Cannot mask with non-boolean array containing NA / NaN values 문자열을 찾을 때 컬럼에 NaN값이 존재하면 NaN을 반환하기 때문에 에러가 발생하는 것이다. 해결을 위해서는 NaN 값이 존재하는 경우에 대한 예외처리가 필요하다. str.contains() 함수의 파라미터 na를 사용하여 NaN을 만났을 경우 기본값을 설정해 줄 수 있다. df2.loc[df2['price']...
Pandas - 날짜 단위로 그룹화하기 resample()
시카고의 범죄 발생 시각을 기록한 데이터가 있다. 이 데이터로 prophet 라이브러리를 사용해 미래에 범죄가 얼마나 발생할지 예측하려 한다. prophet 참고: https://donghyeok90.tistory.com/190 Prophet 라이브러리를 사용한 Time Series(시계열) 데이터 예측 1. Prophet 라이브러리 페이스북이 개발한 일변량(하나의 변수) 시계열 예측을 위한 오픈소스 라이브러리 경향성(Trends), 계절성(seosonality), 휴일(holidays)을 반영하는 모델이다. 계절적 효과가 강하고 donghyeok90.tistory.com groupby 함수를 이용해서는 날짜데이터를 년단위, 월단위, 일단위 등으로 그룹화 할 수 없다. 날짜 단위로 그룹화하기 위해 pan..
판다스 read_csv 에러 - ParserError: Error tokenizing data.
pd.read_csv() 를 하는 과정에서 에러가 발생했다. ParserError: Error tokenizing data. C error: Expected 23 fields in line 533719, saw 24 이 에러는 다른 라인들보다 구분자(seperator)의 갯수가 많은 라인이 있을 때 발생한다. 직접 csv 파일을 수정해도 되지만, 위처럼 데이터가 많은 경우는 찾아서 수정하는 것도 일이기 때문에 read_csv의 파라미터로 에러가 발생한 라인만 제거하고 가져올 수 있다. 파라미터에 error_bad_lines= False 를 추가해준다. chicago_df_1 = pd.read_csv('Chicago_Crimes_2005_to_2007.csv', error_bad_lines=False, i..