본문 바로가기

Pandas

(9)
Pandas Sidetable: 판다스 똑똑하게 사용하기 - Freq, Counts, Missing, Subtotal Pandas의 기능 중 하나인 Sidetable은 데이터 프레임의 요약을 더 쉽게 만들 수 있는 추가 기능 중 하나이다. Sidetable은 group by 와 같이 작동 할 수 있으며 group by 함수와 결합하여 더 많은 정보를 정제하는데 도움이 될 수 으며, 특히 Daily Analysis작업을 하는 Data Scientist에게 매우 유용한 기능이 될 수 있다. sidetable은 library를 따로 설치하면 됩니다. 본 예제에서 사용하는 데이타는 Direct Marketing의 데이타를 사용합니다. 1. Freq Function Freq function은 아래 3가지 정보를 받게 됩니다. - 각 카테고리에 대한 value_counts() - 전체 열에서 각 범주의 백분율 (value_coun..
데이타 결측치(누락값, 결측값) 처리하기 : fillna (ffill, bfill), dropna, isnull 데이타, 머신러닝 분석은 결측값 해결부터 시작합니다. 머신러닝의 모든 데이타는 숫자를 통해 행해지고 결측값 즉 NaN, NAN, nun과 같은 방법으로 표기되는 결측값을 처리해야 하는 문제가 있습니다. 모든 Machin Learning 프로그래머들은 해당 작업을 해야 하는 문제에 봉착합니다. 이를 처리하는 방법에 대해 알아보겠습니다. 1. 누락값 확인하기 누락값을 사용하기 위해 numpy에서 누락값을 불러옵니다. from numpy import NAN, NaN, nan 누락값은 0, ' '와 같은 값과는 다른 개념이라는 것에 주의해야 합니다. 누락값은 말 그대로 데이터 자체가 없다는 것을 의미합니다. 아래값을 실행하면 모든 값은 False입니다. 즉 그 어떤것과도 같지 않습니다. print(NaN == ..
Pandas에서 시간, 날짜 다루기 - to_datetime만 잘 다루면 끝! Pandas를 하다 보면 언젠가 고민하게 되는 날짜와 시간 다루기에 대해 알아보겠습니다. Pandas에서는 일자시간타입(datatime64)데이터를 이용하여 여러 데이터를 다룰 수 있는데요. to_datatime 함수만 잘 다루면 사실 끝날 수 있습니다. 간단한 예제를 보시려면 이곳을 확인하세요. 실습을 위해 아래와 같은 기본 데이타는 아래와 같습니다. import pandas as pd df = pd.DataFrame({'Birth':['2019-01-01 09:10:00', '2019-01-08 09:20:30']}) print(df.info()) 아래와 같이 같이 object형으로 구성이 되어 있습니다. RangeIndex: 2 entries, 0 to 1 Data columns (total 1 c..
Pandas, read_excel()을 이용한 데이타 읽은 후 K-Means에 적용하기: 실습 Python Pandas의 read_excel()함수를 이용하여 엑셀 쉬트의 데이타를 읽어와서 K-means에 넣는 방법에 대해 알아보겠습니다. read_excel()에 자주 사용하는 option에 대해 알아보겠습니다. 1. (sheet_name='Sheet1', header=2, index_col='prod_sale'): sheet_name은 불어올 쉬트의 이름, header는 label의 위치로 0부터 시작합니다. 2이면 3번째에 header가 존재함을 의미, index_col은 인덱스로 사용할 컬럼명을 의미합니다. 2. (dtype={'PROD_BRND_NM': str, 'TOTAL':float}): dtype으로 각 컬럼의 데이터 형태를 지정하게 됩니다. 여기서는PROD_BRND_NM는 str형,..
Pandas 기초 통계를 위한 groupby 응용 - nunique()와 matplot로 그래프 간단하게 그리기 Pandas에서 기초 통계를 위한 groupby 응용, 직접 실행해 보면 어떻게 나오는지 확인이 가능합니다. '빈도수'를 확인하기 위한 nunique()를 사용합니다. 즉 Unique한 Valu를 구할 때 유용합니다. 무엇보다 맨 하단의 예제를 통해 matplotlib를 통해 Pandas의 데이타를 간단한 명령어로 시각화하는 방법의 예시를 잘 기억해두세요. import pandas as pd # print("\n-- \n", "") pandas_DF = pd.read_csv(r'C:\Users\HANA\PycharmProjects\HANATOUR\Pandas\doit_pandas-master\data\gapminder.tsv', sep='\t') print("\n-- pandas_DF.columns\n"..
[TIP] Pycharm, Run Window에서 결과 값 전체 보이게 하기 Pycharm에서 Python을 실행 후 결과값이 너무 길어 Row와 Column의 값이 생량되어 "..."형태로 잘리는 경우가 있습니다. 원인은 Pandas의 기본 max_rows와 max_colwidth가 각 60과 50으로 되어 있어 그 이상이 넘어가면 결과가 ... 형태로 변경이 되게됩니다. import pandas as pd print(pd.get_option('display.max_rows')) print(pd.get_option('display.max_colwidth')) 이럴경우 display.max_colwidth와 display.max_rows속성을 set_option을 이용하여 조절하면 됩니다. None인 경우 모든 결과를 추출하며 숫자를 넣어주면 그에 맞게 조정이 됩니다. impor..
Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [슬라이싱] Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [슬라이싱] 슬라이싱을 이용하여 iloc와 loc를 활용한 방법입니다. 실무에서 매우 유용하게 사용할 수 있는 내용입니다. 모든 행(:)의 데이터에 대해 country와 continent열을 추출하는 방법입니다. 이때 loc와 iloc속성에 전달하는 열 지정 값은 반드시 형식에 맞게 전달해야 합니다. loc는 열명, iloc는 열 위치를 숫자로 지정해야 합니다. import pandas as pd # print("\n-- \n", "") pandas_DF = pd.read_csv(r'C:\Users\HANA\PycharmProjects\HANATOUR\Pandas\doit_pandas-master\data\gapminder.tsv', sep..
Pandas 데이터 추출, 활용 하기 : loc, iloc 활용 [행단위] Pandas의 DataFrame을 보면 type(pandas_DF)형을 확인하면 으로 변경이 됩니다. 행 단위로 추출하는 방법으로 loc, iloc속성을 사용해야 합니다. 속성 설명 loc 인덱스를 기준으로 행 데이터 추출 iloc 행 번호를 기준으로 행 데이터 추출 import pandas as pd pandas_DF = pd.read_csv(r'C:\Users\HANA\PycharmProjects\HANATOUR\Pandas\doit_pandas-master\data\gapminder.tsv', sep='\t') print("\n-- type(pandas_DF)\n", type(pandas_DF)) print("\n-- pandas_DF.columns\n", pandas_DF.columns) prin..
Pandas(판다스)로 데이터 핸들링 : 기본 : info(), describe(), value_counts(), head() Pandas(판다스)로 데이터 핸들링 : 기본 : info(), describe(), value_counts(), head() Pandas는 파이썬 데이터 처리를 위해 존재하는 가장 인기 있는 라이브러리입니다. 판다스는 다양한 포맷으로 된 파일을 DataFrame으로 로딩할 수 있는 편리한 API를 제공합니다. 가장 많이 API로 read_csv()는 CSV뿐만 아니라 어떤 필드 구분 문자 기반의 파일 포맷도 DataFrame으로 변환이 가능합니다. read_csv()의 인자인 sep에 해당 구분 문자를 입력하면 됩니다. 가령 탭으로 필드가 구분돼 있다는 read_scv('파일명', sep='\t')처럼 쓰면 됩니다. read_csv()에서 sep인자를 생략하면 자동으로 콤마로 할당합니다(sep='.')..