본문 바로가기

BLOG/데이터분석

[데이터분석] 데이터프레임 : 랜덤으로 행 복제하는 방법 - sample 이전 글에서는 sample() 함수를 이용하여 원하는 개수 또는 원하는 비율만큼 랜덤으로 행을 추출하는 것에 대해서 알아보았는데요, 이번에는 원하는 비율만큼 랜덤으로 행을 복제해서 나타내는 방법에 대해서 살펴보도록 하겠습니다. - sample(frac= ) : 랜덤으로 행 복제하기 sample(frac= ) 함수는 데이터프레임에서 원하는 비율만큼 랜덤으로 행을 추출하는 함수로, 예를 들어 df라는 이름의 데이터프레임에서 25%만 랜덤으로 추출해서 보고 싶으면 다음과 같이 입력하면 됩니다. df.sample(frac=0.25) 즉, 50%는 df.sample(frac = 0.5), 75%는 df.sample(frac = 0.75) 라고 입력하면 되는데요, 그렇다면 frac의 값이 1을 넘어가게 되면 어떻게.. 더보기
[데이터분석] 데이터프레임 : 랜덤으로 행 출력하기 (원하는 비율) - sample 데이터프레임을 다양하게 변경할 때, 변경되었는지 확인하기 위해 head() 함수 또는 tail() 함수를 주로 사용합니다. 하지만 head() 함수와 tail() 함수는 상단 또는 하단에 있는 행만 보이기 때문에 중간에 데이터가 어떠한지 모를 수 있습니다. 따라서 데이터를 무작위로 추출하려면 sample() 함수를 사용하는 것이 적절한데요, 아래 코드를 보면서 설명드리도록 하겠습니다. 1. sample(n = 개수) : '개수'만큼 무작위로 행 추출하기 만약 df라는 데이터프레임이 있을 때, 10개의 행만 랜덤으로 추출해서 보고 싶다면, 다음과 같이 코드를 입력하면 됩니다. df.sample(n=10) 2. sample(frac = 비율) : '비율'만큼 무작위로 행 추출하기 반면, 개수를 지정하는 것 .. 더보기
[데이터분석] 데이터프레임 : 특정 문자열 또는 데이터가 있는 행 출력하기 - contains() 데이터프레임에서 특정 문자열이나 다른 데이터가 있는 행만 따로 출력되어서 보이도록 하려면 어떻게 해야 할까요? 바로, 이를 도와주는 함수가 contains() 이라는 함수인데요, contains() 함수를 이용해서 특정 텍스트 또는 텍스트열이 있는 행만 출력할 수 있답니다. 아래의 코드를 보면서 자세히 설명하도록 하겠습니다. - contains() : 특정 문자 또는 문자열이 포함된 데이터 찾기 먼저, 아래와 같은 데이터프레임이 있다고 가정해보겠습니다. # itempricecount 0ice water10001 1milk20005 2ice coffee30002 3ade40001 4latte50003 5ice tea60002 만약 이 데이터프레임의 'item' 칼럼에서 'ice'라는 문자열이 포함되어 있는.. 더보기
[데이터분석] 데이터프레임 중간에 생략된 부분 보이게 하는 방법 데이터프레임에 데이터가 많거나 칼럼이 많으면 데이터프레임을 출력할 때 전체가 다 출력되지 않고, 중간에 '...' 라고 일부분이 생략되어 있는 것을 보셨을 수 있습니다. 이처럼 데이터프레임의 중간 부분이 생략된 이유는, 바로 데이터프레임 기능을 제공하는 pandas 라이브러리의 기본값 설정이 생략되도록 되어있는 것인데요, pandas의 설정을 바꿔준다면 생략된 행 또는 칼럼을 볼 수 있습니다. 설정 기능은 두 가지로, 모든 행이 보여지도록 설정하는 기능과 모든 열이 보이도록 설정하는 기능이 있는데요, 아래와 같이 코드를 입력하면 됩니다. 1. 모든 행이 보이도록 import pandas as pd pd.set_option('display.max_rows',None) 2. 모든 열이 보이도록 import .. 더보기
[데이터분석] 데이터프레임 : 특정 칼럼(열)을 리스트로 바꾸는 방법 데이터프레임에서 특정 칼럼(열)에 있는 데이터를 리스트의 형식으로 만들고 싶을 수 있는데요, 이러한 경우 간단하게 for문을 이용해서 리스트로 만들 수 있답니다. 먼저, 아래와 같은 데이터프레임(df1)이 있다고 가정해보겠습니다. # itempricecount 0water10001 1milk20005 2coffee30002 3ade40001 4juice50003 5tea60002 이 데이터프레임에서 만약 'item' 칼럼에 있는 데이터들을 리스트로 만들고 싶다면 아래와 같이 for문을 사용해서 코드를 입력하면 됩니다. item_list = [] for i in df1['item'] : item_list.append(i) 먼저 비어있는 리스트를 만들고, for문에서 df의 'item' 칼럼에서 데이터를 하.. 더보기
[데이터분석] 데이터프레임 : 특정 칼럼(열)에 있는 데이터 출력하기 for문을 이용하면 데이터프레임에서 특정 칼럼(열)에 있는 데이터를 하나씩 출력할 수 있는데요, 먼저, 아래와 같은 데이터프레임(df1)이 있다고 가정해보겠습니다. # itempricecount 0water10001 1milk20005 2coffee30002 3ade40001 4juice50003 5tea60002 이 데이터프레임에서 만약 'item' 칼럼에 있는 데이터를 출력하고 싶다면 다음과 같이 코드를 작성하면 됩니다. for i in df1['item'] : print(i) water milk coffee ade juice tea 출력된 결과, 'item'에 있는 데이터가 모두 잘 출력되었음을 확인할 수 있습니다. 추가로, 만약 'item' 칼럼에 있는 데이터들을 하나의 리스트로 만들고 싶다면 아.. 더보기
[데이터분석] 데이터프레임 : 칼럼이 일치하는 데이터프레임에 다른 칼럼 붙여 넣기 - merge 만약 두 데이터프레임 df1, df2가 있을 때, 두 데이터프레임에서 특정 칼럼이 동일하고, 그 칼람에 들어있는 데이터가 일치한다면, df1에는 없고 df2에는 있는 칼럼을 df1에 붙여넣으려면 어떻게 해야 할까요? 바로, merge() 함수를 이용해서 변경이 가능한데요, 아래 코드를 보면서 설명하도록 하겠습니다. - merge() : 칼럼 비교 후 붙여 넣기 먼저, 아래와 같은 데이터프레임 df1과 df2가 있다고 가정해보겠습니다. # itempricecount 0water10001 1milk20005 2coffee30002 3ade40001 4juice50003 5tea60002 # itempricerating 0water10004.5 1milk20003.4 2americano 35005.3 3ade.. 더보기
[데이터분석] 데이터프레임 : 하나의 데이터 다른 값으로 바꾸기 (2) - iloc 이전 글에서는 loc를 사용해서 데이터프레임에서 하나의 데이터를 다른 값으로 바꾸는 방법에 대해서 살펴보았는데요, loc는 인덱스 이름을 이용해서 데이터를 변경하는 방법이었습니다. 이번에는 인덱스 번호를 이용하는 iloc를 사용해서 데이터를 변경하는 방법에 대해서 살펴보겠습니다 2. iloc[행번호][열번호] = '바꾸는 값' 먼저, 아래와 같은 데이터프레임이 있다고 가정해보겠습니다. itemcountprice 0coffee13000 1juice54000 2ade25000 3milk12000 4tea34000 5water21000 이 데이터프레임에서 'item'이 'juice'인 첫 번째 행에서 'count' 칼럼에 있는 데이터 '5'를 '3'으로 변경하고 싶다고 가정해보겠습니다. 그러기 위해선, 먼저 .. 더보기
[데이터분석] 데이터프레임 : 하나의 데이터 다른 값으로 바꾸기 (1) - loc 데이터프레임에서 하나의 데이터를 다른 값으로 바꾸는 방법은 여러 개가 있는데요, 그중 자주 사용되는 두 가지 방법에 대해서 설명드리도록 하겠습니다. 1. loc['index이름']['칼럼이름'] = '바꿀 값' 첫 번째 방법은 loc을 이용하여 데이터를 바꾸는 방법인데요, 먼저 아래와 같은 데이터프레임이 있다고 가정해보겠습니다. itemcountprice 0coffee13000 1juice54000 2ade25000 3milk12000 4tea34000 5water21000 이 데이터프레임에서 만약 'item'이 juice인 행에서 'count' 칼럼에 있는 데이터 '5'를 '3'으로 바꾸고 싶다면 어떻게 해야할까요? 우선 데이터를 바꾸기 전 'item' 칼럼을 인덱스로 설정해야 하는데요, 아래와 같이 .. 더보기
[데이터분석] 데이터프레임 : 특정 열(칼럼)에 있는 데이터를 연산해서 결측치(NaN) 채우기 - fillna() 만약 아래와 같은 데이터프레임이 있다고 가정할 때, itemcountpricetotal 0coffee130003000.0 1juice5400020000.0 2ade25000NaN 3milk120002000.0 4tea34000NaN 5water210002000.0 'count' 칼럼과 'price' 칼럼에 있는 데이터의 곱이 'total' 칼럼의 데이터에 해당되는 것을 살펴볼 수 있는데요, total 칼럼에 2번째 행과 4번째 행을 보면 결측값(NaN)으로 비워져 있는 것을 볼 수 있습니다. 일일이 비어있는 데이터에 값을 넣어줘도 되지만 데이터의 양이 매우 많으면 많은 시간이 소요될 수 있습니다. 따라서 fillna() 라는 함수를 사용하면 한 번에 연산해서 결측값을 채울 수 있는데요, 만약 'total.. 더보기