목록판다스 (8)
컴공생의 다이어리
pandas 결측값 확인 및 처리 결측값은 탐색적 데이터 분석에서도, 그 후 더 나아가 머신 러닝 알고리즘을 통해 분석을 할 때에도 성능에 영향을 줄 수 있는 값이다. 결측값은 아예 제거를 해주거나, 특정 값으로 채워주거나 크게 두 가지 선택을 해주는 것이 좋다. 결측값 확인 - isnull(), isnull().sum() 결측값을 확인해보려면 isnull().sum()을 사용하는 것이 간편하다. In [1]: import pandas as pd In [2]: df = pd.DataFrame({"v1":[None,200,None,400], "v2":[None,200,100,250], "v3":[40,60,500,None]}) df Out[2]: v1 v2 v3 0 NaN NaN 40.0 1 200.0 2..
pandas 데이터프레임의 값(df.values)과 열(컬럼) 이름(df.columns) 데이터프레임의 행들의 값을 보고 싶다면 values를 열의 이름을 알고 싶다면 columns를 사용하여 볼 수 있다. df.values#행들의 데이터 df.columns#열의 이름 데이터 프레임의 값이나 열의 이름을 목록으로 변환하고 싶다면 tolist()를 사용하면 된다. df.values.tolist()#행들의 데이터 목록으로 변환 df.columns.tolist()#열의 이름 목록으로 변환 예시 In [1]: import pandas as pd In [2]: url='https://raw.githubusercontent.com/CodeDiary18/Seoul-Public-Bike/main/data/%EB%8C%..
pandas의 데이터 타입(data type) dtype int64 float64 bool datetime64 category object 설명 정수형 실수형 부울형 날짜표현 카테고리 문자열 or 복합형 * Category형 타입? 카테고리형(Categorical) 데이터는 데이터프레임의 칼럼에서 특정한 형태의 데이터가 반복되는 경우 사용한다. 예를 들어 성별(남성, 여성), 나이(10대, 20대, ...)와 같이 특정 구간의 데이터가 반복되는 경우를 말한다. 카테고리형 데이터를 이용하면 반복된 데이터를 코드화하여 데이터의 사이즈를 줄여서 메모리 사용량이 줄어 들고 데이터 처리 속도가 빨라진다. 데이터프레임의 각 컬럼의 타입 출력 데이터 프레임의 각 컬럼의 타입을 출력하려면 dtypes를 통해 확인할 수..
pandas(판다스) 데이터 프레임(dataframe) 출력 pandas의 데이터 프레임을 출력하는 방법에 대해 정리하고자 한다. 데이터 프레임의 상위 n개 행 출력 데이터 프레임의 상위 행을 출력하려면 head()를 사용하면 된다. head함수의 인자로 출력하고 싶은 행의 수(n)를 넣어주면 상위 n개의 행을 출력한다. 인자를 넣지 않으면 head함수의 기본값인 5개의 행이 출력된다. import pandas as pd df.head()#상위 5개의 행 출력 df.head(10)#상위 10개의 행 출력 데이터 프레임의 하위 n개 행 출력 데이터 프레임의 하위 행을 출력하려면 tail()를 사용하면 된다. tail함수의 인자로 출력하고 싶은 행의 수(n)를 넣어주면 하위 n개의 행을 출력한다. 인자를 넣..
판다스(pandas)에서 날짜와 시간 판다스의 날짜와 시간 함수는 넘파이(numpy)를 기반으로 만들어졌다. 하나의 날짜만 사용할 때는 Timestamp로 표현하고, 두 개 이상의 배열을 이룰 때는 DatetimeIndex로 표현한다. Timestamp 함수 Timestamp()함수를 사용해 특정 날짜를 표현할 수 있다. 숫자가 들어오는 경우 1970년 1월 1일을 기준으로 Timestamp에 넣은 만큼 더해준다. 이때, unit이라는 옵션에 단위를 설정해 어디에 더할지 설정할 수 있다. import pandas as pd pd.Timestamp(1239.1238934) # 디폴트 : 나노초 #Timestamp('1970-01-01 00:00:00.000001239') pd.Timestamp(1239.1..
여러 개의 컬럼 합치기 여러 개의 컬럼을 합쳐서 하나의 열로 만들어 보고싶다면 아래의 예시와 같이 하면 열을 합칠 수 있다. In [1]: import pandas as pd In [2]: df = pd.DataFrame({'이름':['유재석','강호동','신동엽','이경규'], '시간':[1,3,5,7], '분':[5, 40, 35, 57]}) df Out[2]: 이름 시간 분 0 유재석 1 5 1 강호동 3 40 2 신동엽 5 35 3 이경규 7 57 In [3]: cols = ['시간', '분'] df['시간_분_combined'] =df[cols].apply(lambda row: ':'.join(row.values.astype(str)), axis=1) df Out[3]: 이름 시간 분 시간_분_..
행 열 전환(transpose) 행 열 전환은 데이터프레임이름.transpose()를 하면 전환 할 수 있다. 전환이 되고 난 상태에서 바로 데이터 프레임을 사용하려고 하면 열 이름이 의도치 않게 한 행의 데이터로 되어 있는 것을 볼 수 있을 것이다. 이 때, 데이터프레임이름(columns=데이터프레임이름.iloc[0],inplace=True)와 데이터프레임이름=데이터프레임이름.drop(데이터프레임이름.index[0])를 해주면 행열 전환을 잘 마무리 할 수 있다. 아래 코드에서 데이터 프레임 이름은 df이다. df = df.transpose()#행 열 전환 df.rename(columns=df.iloc[0], inplace=True)# 행열이 전환된 데이터프레임의 열 이름 제대로 수정 df = df.d..
간혹 데이터프레임의 열이 많을 때, 아래와 같이 ···으로 일부 열이 생략이되서 나온다. 상가업소번호 상호명 지점명 상권업종대분류코드 상권업종대분류명 상권업종중분류코드 상권업종중분류명 상권업종소분류코드 상권업종소분류명 표준산업분류코드 ... 건물관리번호 건물명 도로명주소 구우편번호 신우편번호 동정보 층정보 호정보 경도 위도 0 17163092 도전최강달인왕만두 NaN Q 음식 Q01 한식 Q01A01 한식/백반/한정식 I56111 ... 1174010200102170000018014 고덕그라시움 서울특별시 강동구 고덕로 333 134082 5224.0 NaN NaN NaN 127.159471 37.556197 1 17120456 이때 NaN Q 음식 Q01 한식 Q01A01 한식/백반/한정식 I56111..