pandas

시계열 데이터 시계열 데이터는 데이터 분석 분야에서 중요하게 다루는 데이터 중 하나이다. 일정 시간 간격으로 어떤 값을 기록한 데이터에서 시계열 데이터가 매우 중요하다. Datetime 오브젝트 datetime 라이브러리는 날짜와 시간을 처리하는 등의 다양한 기능을 제공하는 파이썬 라이브러리이다. datetime 라이브러리에는 날짜를 처리하는 date 오브젝트, 시간을 처리하는 time 오브젝트, 날짜와 시간 모두 처리하는 datetime 오브젝트가 포함되어 있다. from datetime import datetime now1 = datetime.now() print(now1) now2 = datetime.today() print(now2) now, today 메서드를 사용하면 현재 시간을 출력할 수 있..
데이터 집계 보통 그룹 연산은 데이터를 '분할'하고 '반영'하고 '결합'하는 과정을 거치게 된다. 이를 '분할 - 반영 - 결합(Split - Apply - Combine)'이라고 한다. groupby 메서드를 이용하여 뎅;터를 집계할 수 있다. 집계란 데이터에 평균을 구하거나 합을 구하는 등의 의미 있는 값을 도출해 내는 것을 말한다. import pandas as pd df = pd.read_csv('../data/gapminder.tsv', sep='\t') avg_life_exp_by_year = df.groupby('year').lifeExp.mean() print(avg_life_exp_by_year) groupby 메서드를 사용해 lifeExp 열의 연도별 평균값을 구했다. groupby 메..
apply 메서드 apply 메서드는 사용자가 작성한 함수를 한 번에 데이터프레임의 각 행과 열에 적용하여 실행할 수 있게 해주는 메서드이다. 즉, 함수를 브로드캐스팅해야 하는 경우에 apply 메서드를 사용한다. 함수를 하나 만들어 보자. def my_sq(x): return x ** 2 def my_exp(x, n): return x ** n print(my_sq(4)) print() print(my_exp(2, 4)) 이제 apply 메서드를 사용해보자. import pandas as pd df = pd.DataFrame({'a': [10, 20, 30], 'b':[20, 30, 40]}) print(df) print(df['a'] ** 2) 하나하나 적용할 수 있지만 아까 정의해 놓은 함수를 ap..
문자열 다루기 문자열은 작은따옴표나 큰따옴표로 감싸서 만든다. 문자열은 인덱스를 갖고 있고 이를 통해 접근이 가능하다. word = 'grail' sent = 'a scratch' print(word[0]) print() print(sent[0]) 인덱스 슬라이싱을 사용하면 여러 개의 문자를 한 번에 추출할 수 있다. print(word[0:3]) 음수를 적용하면 -1이 마지막 문자이다. print(sent[0:-8]) 왼쪽과 오른쪽 중 하나만 지정하게 되면 마지막 위치까지 모두 추출한다. print(word[:3]) 문자열 메서드 문자열에 대한 작업을 하는 메서드가 여러 개 있다. 모두 소문자로 변환하거나 대문자로 변환하는 등 자주 사용되는 메서드를 봐보자. join 메서드 join 메서드는 문자열을 ..
자료형 다루기 자료형 변환은 데이터 분석 과정에서 반드시 알아야 하는 요소 중 하나이다. 예를 들어 카테고리는 문자열로 변환해야 데이터 분석을 수월하게 할 수 있다. 또 다은 예는 전화번호는 보통 숫자로 저장한다. 하지만 전화번호로 평균을 구하거나 더하는 등의 계산은 거의 하지 않는다. 오히려 문자열처럼 다루는 경우가 더 많다. 데이터를 준비하자. import pandas as pd import seaborn as sns tips = sns.load_dataset("tips") 자료형을 변환하려면 astype 메서드를 사용하면 된다. 다음은 astype 메서드를 사용해 sex 열의 데이터를 문자열로 변환하여 sex_str이라는 새로운 열에 저장한 것이다. tips['sex_str'] = tips['sex..
열과 피벗 데이터프레임의 열은 파이썬의 변수와 비슷한 역할을 한다. 예를 들어 ebola 데이터프레임 열은 사망한 날짜(Date), 발병 국가(Case_Guinea) 등의 데이터를 저장하고 있다. 하지만 이번에 다루는 데이터프레임의 열은 열 자체가 어떤 값을 의미한다. 그러다 보니 데이터프레임의 열이 옆으로 길게 늘어선 형태가 된다. 바로 이것을 '넓은 데이터'라고 한다. 이를 깔끔하게 정리하려면 melt 메서드를 사용해야 한다. melt 메서드의 인자를 정리한 표이다. 퓨 리서치 센터(Pew Research Center)에서 조사한 '미국의 소득과 종교'라는 데이터이다. import pandas as pd pew = pd.read_csv('../data/pew.csv') print(pew.head())..
누락값 누락값은 NaN, NAN, nan과 같은 방법으로 표기한다. 누락값은 0이나 ' '과는 다른 개념이다. 누락값은 말 그대로 데이터 자체가 없다는 것을 의미한다. db에서 null과 같은 개념이다. 따라서 같다는 개념도 없다. from numpy import NaN, NAN, nan print(NaN == True) print() print(NaN == False) print() print(NaN == 0) print() print(NaN == ' ') 또한 값 자체가 없기 때문에 NaN끼리 비교해도 같지 않다. print(NaN == NaN) print() print(NaN == nan) print() print(NaN == NAN) print() print(nan == NAN) 누락값을 확인하려..
분석하기 좋은 데이터 분석하기 좋은 데이터란 데이터 집합을 분석하기 좋은 상태로 만들어 놓은 것을 말한다. 데이터 분석 단계에서 데이터 정리는 아주 중요하다. 실제로 데이터 분석 작업의 70% 이상을 차지하고 있는 작업이 데이터 정리 작업이다. 분석하기 좋은 데이터는 다음 조건을 만족해야 하고 이러한 데이터를 Tidy Data라고 한다. 데이터 연결 예를 들어 주식 데이터를 분석하는 과정에서 '기업 정보'가 있는 데이터 집합과 '주식 가격'이 있는 데이터 집합이 있을 때 '첨단 산업 기업의 주식 가격에 대한 데이터'를 보려면 어떻게 해야 할까?? 일단 기업 정보에서 첨단 기술을 가진 기업을 찾아야 한다. 그리고 이 기업들의 주식 가격을 찾아야 한다. 그런 다음 찾아낸 2개의 데이터를 연결하면 된다. 이렇..
단변량 그래프 그리기 - 히스토그램 seaborn 라이브러리를 sns라고 하자. import seaborn as sns tips = sns.load_dataset("tips") ax = plt.subplots() ax = sns.distplot(tips['total_bill']) ax.set_title('Total Bill Histogram with Density Plot') subplots 메서드로 기본 틀을 만들고 distplot 메서드에 total_bill 열 데이터를 전달하여 히스토그램을 그릴 수 있다. 이때 distplot 메서드를 사용하면 히스토그램과 밀집도 그래프를 같이 그린다. 만약 밀집도 그래프를 제외하고 싶다면 kde 인잣값을 False로 설정하면 된다. 밀집도 그래프만 나타내고 싶다면..
기초 그래프 그리기 seaborn 라이브러리에는 tips라는 데이터 집합이 있다. tips 데이터 집합은 어떤 식당에서 팁을 지불한 손님의 정보를 모아둔 것이다. 데이터 불러오기 tips = sns.load_dataset("tips") print(tips.head()) print(type(tips)) 위의 데이터로 히스토그램을 그려보자. 히스토그램은 데이터프레임의 열 데이터 분포와 빈도를 살펴보는 용도로 자주 사용하는 그래프이다. 이때 데이터프레임의 total_bill, tip 등의 열을 변수라고 부르기도 한다. 그리고 변수를 하나만 사용해서 그린 그래프를 '일변량 그래프'라고 부른다. fig = plt.figure() axes1 = fig.add_subplot(1, 1, 1) 기본 틀을 만든다. axe..
hvv_an
'pandas' 태그의 글 목록