본문 바로가기

Pandas/응용

(64)
판다스 - zip : 카테고리형 컬럼과 숫자형 컬럼 구분 zip (*iterable) 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수이다. (점프투파이썬) 이렇게 1과 4, 2와 5 그리고 3과 6을 묶어주는 역할을 하는 것이다. 문자열도 가능하다. for 문으로 한 쌍씩 꺼내올 수도 있다. 길이가 맞지 않다면 짧은 쪽, c의 길이 만큼만 맞춰 4개의 쌍이 나온다. titanic 데이터셋 불러오기 dtypes를 이용해 컬럼과 컬럼의 데이터타입을 zip으로 묶어낼 것이다. 이렇게 묶어서 한 쌍씩 불러낼 수 있다. 숫자형 컬럼 찾기 컬럼의 타입이 int64이거나 float64인 컬럼을 찾아내면 되는 것이다. 리스트 표현식 이용 숫자형과 숫자형이 아닌 컬럼으로 구분을 완성했다. * 만약 타입이 object와 int64, float64 밖에 없다면 typ..
판다스 - isinstance [isinstace(값, 자료형)] * 자료형은 str, float, list, tuple 등 가능하다. 값의 자료형이 인자에 있는 자료형과 동일하다면 True 그렇지 않다면 False를 반환 결과를 True or False로 반환한다. 데이터 프레임 생성 Num 컬럼 값들의 자료형이 int와 str이 혼재되어있다. , 를 없애서 정수형으로 바꾸기 위해 map과 replace를 이용한다. 하지만 3400이 int이기 때문에 replace는 먹히지 않는다. isinstance로 Num 컬럼 확인 리스트 표현식으로 동시에 이용 원하는대로 컬럼의 dtype이 int로 바뀌었다. https://steadiness-193.tistory.com/216 판다스 - map map 순차적 자료형에 대해 함수를 적용하는,..
판다스 - 데이터프레임 역순으로 재구성 데이터 불러오기 인덱스가 0부터 243까지 있다. 역순이라면 243부터 0번까지 반대로 인덱스가 설정되어야 한다. range 243부터 -1까지를 포함하지 않는 범위를 만들었다. range에 범위 다음으로 -1을 넣는다면 역순으로 이해한다. 실제로 위 범위를 리스트로 바꿔서 출력하면 ... 역순으로 리스트가 잘 생성되었다. 역순 리스트 변수 생성 pd.DataFrame(기존 데이터프레임, index=r_idx) index인자에 역순으로 만든 인덱스 리스트를 넣어준다. 인덱스 초기화 잘 바뀌었는지 확인해보자 마지막행이던 243행이 0번행으로, 0번행이 243행으로 잘 바뀌었다.
판다스 - 라벨링(Labeling) 머신러닝을 진행하기 위해서는 문자열을 숫자로 바꿔줘야 한다. 소형 → 0 / 중형 → 1 / 대형 → 2 이런 식이다. 데이터 불러오기 race 컬럼의 고유값 라벨링 목표 White → 0 Black →1 Asian-Pac-Islander → 2 mer-Indian-Eskimo →3 Other → 4 두가지 방법으로 알아본다. 1. 딕셔너리 + map 일일이 사전으로 매핑을 만들어두고 map을 이용해서 값을 구해낸다. https://steadiness-193.tistory.com/216?category=947982 판다스 - map map 순차적 자료형에 대해 함수를 적용하는, 내장 함수 map(함수, 순차적 자료) map(func, iterables) map의 첫번째 인자인 함수는 파이썬의 내장함수도 ..
판다스 - datetime : dt 연산자 활용 데이터 불러오기 자료형이 datetime인 datetime 컬럼을 만들어 데이터프레임으로 만들어줬다. https://steadiness-193.tistory.com/171 판다스 - to_datetime : format, dt to_datetime 메서드를 사용하면 Date 형식의 자료형을 datetime 오브젝트로 변환할 수 있다. 데이터 만들기 date컬럼은 자료형이 object이다. 이 문자열 날짜를 datetime 자료형으로 변환하려면 pd.to_datetime을 steadiness-193.tistory.com 위 포스팅에서 설명한 dt 연산자에 대해 조금 더 다양한 예시를 살펴보자 연도 추출 dt.year 월 추출 dt.month 일 추출 dt.day 시간 추출 dt.hour 분 추출 dt.mi..
판다스 - groupby : 그룹 객체별, 기준 컬럼의 상위 N개의 행만 추출 https://steadiness-193.tistory.com/130 판다스 - groupby : 그룹 객체별 상위 N개의 행만 추출 타이타닉 데이터프레임을 pclass와 성별 컬럼으로 그룹화 그룹별 데이터 개수 여기서 그룹별 fare(요금) 컬럼 기준으로 상위 50개씩만 추출하려면? 1. lambda 함수 이용 위 lambda 함수를 apply와 함께 이� steadiness-193.tistory.com 위 포스팅에선 fare 컬럼을 기준으로 상위 50개 행을 그룹별로 추출해 데이터프레임으로 반환했다. 이번엔 기준 컬럼을 자유롭게 바꿔보고, 상위 N개의 행도 원하는 만큼 시리즈로 뽑아내보자. 이번 포스팅에선 value_counts가 아니라 nlargest를 사용한다. nlargest에 대한 상세 내용은..
판다스 - 값이 높은 n번째까지 출력 : nlargest 시리즈.nlargest(n, keep='first') n : 상위 몇개까지 나타낼 것인가 keep='first' : 동등한 값이 있다면 제일 먼저 나온 값을 보여준다. 시리즈의 경우엔 컬럼을 명시할 필요 없다. 데이터프레임.nlargest(n, columns, keep='first') 데이터프레임의 경우 우선 순위에 따라 컬럼을 명시해 줄 수 있다. 참조 : https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.nlargest.html 데이터 불러오기 시리즈.nlargest 인구수가 많은 순서대로 상위 3개가 나왔다. keep='first'이기 때문에 Malta가 나왔다. keep='all' keep='all' 옵션을 주게..
판다스 - map : dict.get 데이터 불러오기 who 컬럼의 고유값 [목표 : man, woman은 adult로 변경 / child는 그대로 유지] try1 : 딕셔너리와 map 이용 하나의 컬럼은 시리즈이며 이는 순차적 자료형이기 때문에 map 메서드를 이용할 수 있으며 map 메서드에 딕셔너리를 이용해 기존값을(key) 대체값(value)으로 바꿔줄 수 있다. 단, key에 해당하는 값이 없다면 NaN을 반환한다. try1 실패 try2 : 딕셔너리.get, map 이용 get(x) 함수는 x라는 Key에 대응되는 Value를 돌려준다. 딕셔너리 안에 찾으려는 Key 값이 없을 경우 미리 정해 둔 디폴트 값을 대신 가져오게 하고 싶을 때에는 get(x, '디폴트 값')을 사용하면 편리하다. (출처 : 점프투파이썬) try1과는 방..