본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 : 결측치 있는지 확인하기 & 칼럼별 개수 세기 - isnull(), isnull().sum() 데이터 분석을 하기 전 데이터 전처리를 할 때, 결측치(결측값, NaN)가 있으면 데이터 분석을 할 때 문제가 될 수 있는데요, 사전에 결측치가 있는지 알아보는 것이 중요합니다. 하지만 데이터가 많지 않을 때 결측치가 있는지 한 눈에 알 수 있지만 데이터가 매우 많다면 결측치가 어디에 있는지, 칼럼마다 몇 개가 있는지 확인하기 어려울 수 있습니다. 따라서 pandas 에서는 결측치가 얼마큼 있는지 알려주는 함수를 제공하는데요, 아래 예시와 코드를 보면서 설명하도록 하겠습니다. 1. isnull() : 결측치 확인하기 먼저, 결측치가 있는지 확인하는 함수는 isnull() 함수로, 각 행, 열마다 결측치가 있는 데이터가는 True, 결측치가 아닌 데이터는 False를 반환합니다. 예를 들어, 아래와 같은 .. 더보기
[데이터분석] 데이터프레임 concat() 으로 병합 시, 인덱스 재배열 하는 방법 여러 개의 데이터프레임은 concat() 함수로 위아래 또는 좌우로 병합할 수 있는데요, 이때 인덱스는 자동으로 재배열되어서 나오지 않는답니다. 따라서 어떻게 해야 인덱스를 재배열할 수 있는지 코드를 보면서 살펴보도록 하겠습니다. 먼저, 아래와 같은 두 데이터프레임이 있다고 가정해보겠습니다. tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 indextempitemcountpricerating 03hotmilk420002.5 14hottea340003.0 25icewater210004.5 이제 이 두 데이터프레임을 합치려고 하는데요, concat() 함수 안에 합칠 데이터프레임을 다음과 같이 입력하면 됩니다. pd... 더보기
[데이터분석] 데이터프레임 : 위/아래, 좌/우로 합치기 - concat() 데이터프레임은 concat() 함수를 이용하여 두 개의 데이터프레임을 위/아래 또는 좌/우로 합칠 수 있는데요, 코드를 보면서 살펴보도록 하겠습니다. 1. 위 아래로 데이터프레임 합치기 먼저 아래와 같은 두 개의 데이터프레임(df1, df2)이 있다고 가정해보겠습니다. tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 indextempitemcountpricerating 03hotmilk420002.5 14hottea340003.0 25icewater210004.5 이제 이 두 데이터프레임을 합치려고 하는데요, concat() 함수 안에 합칠 데이터프레임을 다음과 같이 입력하면 됩니다. pd.concat([df1, .. 더보기
[데이터분석] 데이터 프레임 : 행과 열 바꾸기 - transpose() pandas 라이브러리를 이용하면 데이터프레임으로 데이터 분석을 쉽게 할 수 있는데요, 특히 다양한 형태로 쉽게 변경할 수 있기 때문에 많이 사용됩니다. 한편, 데이터프레임으로 데이터를 분석할 때, 행과 열을 바꿔서 나타내고 싶을 수 있는데요, 이러한 경우 transpose() 함수를 사용하여 행과 열을 바꿀 수 있습니다. 먼저, 아래와 같은 데이터프레임이 있다고 가정해보겠습니다. tempcountpricerating item coffeehot130004.5 juiceice540003.0 adeice250004.0 milkhot420002.5 teahot340003.0 waterice210004.5 위 데이터프레임은 'item' 칼럼이 인덱스로 설정된 데이터프레임입니다. 이제 이 데이터프레임에서 tran.. 더보기
[데이터분석] matplotlib : 그래프 눈금에 이름 / 단위 나타내는 법 matplotlib 라이브러리는 그래프를 쉽고 간단하게 그릴 수 있도록 도와주는 라이브러리인데요, 그래프를 만들다 보면 x축이나 y축 눈금에 있는 텍스트를 다른 것으로 변경하거나 단위를 붙여서 나타내고 싶을 수 있습니다. matplotlib 라이브러리에서는 이렇게 눈금의 이름을 바꾸는 것이 가능한데요, 아래 코드를 보면서 살펴보도록 하겠습니다. 1. 그래프 눈금에 이름 또는 단위 나타내기 먼저, 간단한 그래프를 그려보도록 하겠습니다. import numpy as np import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y = np.arange(1,10,1) plt.xticks(np.arange(0,11,1)) #x축 눈금간격 설정 pl.. 더보기
[데이터분석] matplotlib : 그래프 눈금 간격 지정 방법 matplotlib 라이브러리는 그래프를 쉽게 그리도록 도와주는 라이브러리인데요, 기본적으로 그래프를 그리면 눈금이 자동으로 지정되어서 출력됩니다. 하지만 눈금이 원하는 그래프와 적절하지 않다면 이를 조정해야 하는데요, 눈금 간격을 지정하는 방법에 대해서 알아보도록 하겠습니다. - 그래프 눈금 간격 설정하기 먼저, matplotlib 라이브러리와 numpy 배열을 이용하여 간단한 그래프를 만들어보도록 하겠습니다. import numpy as np import matplotlib.pyplot as plt a = np.arange(0,10,1) #0,2,4,6,8 plt.plot(a,a,'bo') 출력된 결과를 보면, x축과 y축의 눈금 모두 2로 설정이 되어 있는데요, 눈금 간격을 설정하는 방법은 xtic.. 더보기
[데이터분석] 데이터 프레임 : 인덱싱 - iloc / loc 차이 이전 포스팅에서는 데이터프레임에서 원하는 행을 인덱싱 하는 iloc[ ] 에 대해서 알아보았는데요, iloc[ ] 뿐만 아니라 loc[ ] 도 인덱싱을 하는 함수입니다. iloc[ ] 와 loc[ ] 의 차이에 대해 바로 설명하자면, iloc[ ] 는 인덱스 번호로 인덱싱 하는 방법이고, loc[ ] 는 인덱스 이름으로 인덱싱 하는 방법입니다. 한 번 코드를 보면서 설명드리도록 하겠습니다. 1. iloc[ ] : 인덱스 번호로 인덱싱 먼저, 다음과 같은 데이터프레임(df)이 있다고 가정해보겠습니다. tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 3hotmilk420002.5 4hottea340003.0 5icew.. 더보기
[데이터분석] 데이터 프레임 : 원하는 행 인덱싱 하기 - iloc 데이터 프레임을 다루다보면, 원하는 행만 추출하는 등 인덱싱을 해야 하는 경우가 있는데요, 인덱싱은 iloc 라는 모듈을 이용해서 할 수 있습니다. - iloc[ ] : 원하는 행 인덱싱 먼저, 아래와 같은 데이터프레임(df)이 있다고 가정해보겠습니다. tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 3hotmilk420002.5 4hottea340003.0 5icewater210004.5 위 데이터프레임에서 왼쪽을 보면 알 수 있듯이, 첫 번째 행의 인덱스가 0부터 시작합니다. 이제 여기서 인덱싱을 하려면 iloc[인덱스번호] 처럼 코드를 입력하면 되는데요, 첫 번째 행을 인덱싱 해보도록 하겠습니다. df.ilo.. 더보기
[데이터분석] 데이터 프레임 : 두 개의 칼럼(열) 합치기 (문자열 데이터) - map() 데이터 프레임에서 문자열 데이터(텍스트)가 있는 두 열이 있을 때, 이 두 열을 합치고 싶다면 어떻게 해야 할까요? 바로, map() 함수를 사용하면 쉽게 열을 합칠 수 있는데요, 아래 코드를 보면서 설명드리도록 하겠습니다. 1. 두 개의 칼럼 합치기 먼저, 아래와 같이 'df' 라는 이름의 데이터 프레임이 있다고 가정해보겠습니다. tempitemcountpricerating 0hotcoffee130004.5 1icejuice540003.0 2iceade250004.0 3hotmilk420002.5 4hottea340003.0 5icewater210004.5 위 데이터프레임을 보면, 'temp' 칼럼과 'item' 칼럼에 문자열 데이터가 있음을 확인할 수 있습니다. 여기서 텍스트 데이터로 이루어진 열을 .. 더보기
[데이터 분석] 데이터 프레임 : 결측값(NaN) 있는 행/열 삭제하기 - dropna() 데이터분석을 하기 전 데이터 전처리를 할 때, 결측값(NaN)이 있는 항목은 다른 값을 넣어주던가 해당 행을 삭제하는 것이 좋은데요, 만약, 결측값이 들어있는 행 전체를 삭제하고 싶다면 dropna() 함수를 사용하면 됩니다. 1. dropna() : 결측값이 들어있는 행 삭제하기 pandas 라이브러리에서는 결측값이 들어있는 행을 삭제하는 함수를 제공하는데요, 바로 dropna() 함수입니다. 먼저, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다. display(df) itemcountpricerating 0coffee1.030004.5 1juice5.040003.0 2ade2.05000NaN 3milk4.020002.5 4tea3.040003.0 5waterNaN10004.5 6coke4.0200.. 더보기