본문 바로가기

Pandas/응용

(64)
판다스 - groupby : 멀티인덱스, idxmax 활용 데이터 만들기 위와 같은 데이터프레임이 있다. [목표 : Alpha, Key 멀티인덱스로 그룹화하여 Val 컬럼 기준 제일 높은 값의 인덱스를 이용해, 그 인덱스의 행만 추출] 우선 idxmax의 개념은 값이 제일 큰 인덱스를 가져온다는 것이다. Val 컬럼 기준으로 보면 120이 제일 큰 값이기에 그 인덱스, 11을 반환한다. 이제 기존 df를 Alpha와 Key컬럼으로 그룹핑 해보자 이제 그룹별, Val컬럼의 idxmax를 구해보자 해석을 해보자면 A와 ㄱ의 그룹의 Val컬럼에서 제일 큰 값을 가지는 인덱스는 1 B와 ㄹ의 그룹의 Val컬럼에서 제일 큰 값을 가지는 인덱스는 7 이렇게 볼 수 있다. 위 결과를 for loop를 통해 값만 빼오면 각 그룹별 Val컬럼의 idxmax 값이 나온다. 이제 ..
판다스 - 콤마(,) 로 구분된 컬럼에서 원하는 데이터 추출하기 데이터 출처 https://www.kaggle.com/shivamb/netflix-shows#netflix_titles_nov_2019.csv Netflix Movies and TV Shows Movies and TV Shows listings on Netflix www.kaggle.com 데이터 살펴보기 위 데이터프레임에서 0번째 행의 country를 보면 미국, 인도, 한국, 중국이 같이 적혀 있다. 따라서 이렇게 South Korea 랑 같냐는 코드는 당연히 False가 나온다. 오로지 South Korea만 적혀있는 행은 총 136개다. [목표 : 한국이 입력되어있는 모든 행의 개수 찾기] 우선 , 로 구분되어 있기 때문에 split을 이용해 각 단어를 잘라 리스트로 만든다. * 주의 : ,와 공..
판다스 - groupby : 인덱스를 함수로 그룹핑하기 https://steadiness-193.tistory.com/75 판다스 - groupby : 함수로 그룹핑하기 사전이나 시리즈로 그룹핑하는 것보다 함수로 그룹핑하는 것이 보다 더 일반적이다. 그룹 색인으로 넘긴 함수는 색인값 하나마다 한 번씩 호출되며 반환값은 그 그룹의 이름으로 사용된다. 데�� steadiness-193.tistory.com 위 포스팅과 내용의 맥은 같다. 인덱스를 함수로 그룹핑 그룹 색인으로 넘긴 함수는 색인값 하나마다 한 번씩 호출되며 반환값은 그 그룹의 이름으로 사용된다. 데이터 불러오기 물론 이렇게 인덱스를 설정할리가 거의 없겠으나 설명의 목적으로 나이를 인덱스로 설정했다. 심지어 인덱스에 NaN도 있다. [목표 : 나이대 별로 생존율의 평균 파악] 함수 정의 age의 값이..
판다스 - groupby : 인덱스로 그룹화하기 (멀티인덱스, level) https://steadiness-193.tistory.com/76 판다스 - groupby : 색인 단계로 그룹핑하기(계층적 색인) 계층적 색인에서는 축 색인의 단계 중 하나를 이용해 집계할 수 있다. 데이터 만들기 컬럼이 멀티인덱스이므로 컬럼으로 그룹핑할땐 level을 명시해줘야 한다. city를 기준으로 그룹핑 tenor를 기준 steadiness-193.tistory.com 위 포스팅의 조금 더 살을 붙이는 내용이다. 데이터 불러오기 우선 Pclass와 성별 컬럼으로 인덱스를 멀티인덱스로 바꿔보자 참고로 Pclass와 성별 컬럼의 고유값들이다. 인덱스 변경 멀티인덱스로 잘 바뀌었다. 안쪽으로 올수록 레벨이 높아진다. Pclass의 레벨은 0, 성별의 레벨은 1이다. 1. Pclass 인덱스로만 그..
판다스 - 누락데이터를 그룹별로 대체하여 컬럼(열) 만들기 : insert, groupby, transform, fillna 데이터 불러오기 타이타닉의 train 데이터셋을 받아왔다. https://steadiness-193.tistory.com/14 판다스 - 누락 데이터 확인(isnull(), count_nonzero()) 타이타닉 데이터 불러오기 deck 컬럼의 경우 전체 891개의 행 중 203개의 행만 값이 채워진 것을 볼 수 있다. value_counts()로 누락값 개수 확인하기 누락데이터의 개수를 확인하고자 하면 value_counts에 steadiness-193.tistory.com 위 포스팅 내용을 이용해 각 컬럼별 누락값을 살펴보면 총 3컬럼에서 누락값이 있는 것을 확인할 수 있다. 그 중 Age 컬럼을 채우는 방법을 살펴보자 사실 그냥 Age컬럼의 평균값으로 누락값을 채워도 되지만 이는 위험할 수도 있다...
판다스 - 원하는 위치에 조건에 맞는 컬럼(열) 추가 : insert 응용 데이터프레임.insert(원하는 컬럼의 위치, 새롭게 들어갈 컬럼의 이름, 조건) - 컬럼의 위치는 0부터 시작 - 조건을 변수에 넣어서도 이용 가능 데이터 불러오기 위 컬럼들의 자료형을 보자 마력은 숫자로 구성된 것 같은데 자료형이 object이다. 이를 파악하기 위해 unique 메서드로 살펴보자 숫자들 사이에 ?라는 값이 있어 object형으로 표시된 것이다. [목표 : horsepower 컬럼 옆에 자료형이 float인 horsepower 사본 컬럼 추가] https://steadiness-193.tistory.com/18 판다스 - 자료형 변환 (astype, pd.to_numeric) 데이터 불러오기 문제가 있는 열은 total_bill로서, [1, 3, 5, 7]행은 missing이라는 문자..
판다스 - 여러 대용량 데이터 처리하기 : os.listdir https://steadiness-193.tistory.com/27 판다스 - 여러 대용량 데이터 처리하기 (glob) 이 다섯개의 csv 파일을 불러와 한꺼번에 보고자 한다. glob 라이브러리, glob 메서드 이용 glob 라이브러리의 glob메서드는 특정한 패턴의 이름을 가진 파일을 한번에 읽어들일 수 있다. 방법1. 하나�� steadiness-193.tistory.com 여러 대용량 데이터를 한꺼번에 모아서 여는 방법은 위 포스팅의 glob 말고도 os 라이브러리를 이용하는 방법도 있다. data 폴더 안의 파일들 위 파일들 중 fhv로 시작하는 뉴욕 택시 데이터들만 불러와서 한꺼번에 보고자 한다. import os os.listdir 사용 data 폴더에 있는 모든 파일을 다 읽어올 수 있다..
판다스 - reindex를 활용한 멀티인덱스 컬럼(열) 추출 https://steadiness-193.tistory.com/89 판다스 - reindex() reindex() 메서드를 사용하면 데이터프레임의 행/열 인덱스를 새로운 배열로 재지정할 수 있다. 기존 객체를 변경하지 않고 새로운 데이터프레임 객체를 반환한다. 데이터 생성하기 위 df의 (행)인� steadiness-193.tistory.com 위 포스팅의 활용 데이터 불러오기 위 데이터프레임은 컬럼이 이중으로 되어있다. 만약에 1880년, 1881년의 여자 / 남자별 컬럼을 얻고 싶다면 어떻게 할까? 컬럼명으로만 해도, xs 인덱서로 해도 에러가 나온다. 한번에는 안되고 반복 작업 이후에 concat을 이용해야 한다. 하지만 이는 너무 귀찮으니 이때 활용하는 것이 reindex이다. reindex를 활..