본문 바로가기

Pandas/기초

(32)
판다스 - 계층적 색인 축에 대해 둘 이상의 색인 단계를 지정 데이터 만들기 이 데이터프레임의 인덱스와 컬럼은 이렇게 멀티인덱스 형식이다. loc, xs 인덱서 a 행만 보고 싶다면 a행의 2행을 보고 싶다면 세 방법 모두 가능하다. 전체 행에서 2행만 보고 싶다면 계층적 색인의 각 단계에 이름 설정하기 이렇게 하면 인덱서를 사용할 때 가독성을 높일 수 있다. 결과는 동일하다. 계층 정렬, 순서 바꾸기 인덱스의 순서가 다소 뒤죽박죽인 데이터프레임을 설정한다. 이를 정렬하기 위해선 sort_index를 사용한다. key1 의 원소가 사전적으로 정렬되었다. 계층의 순서는 swarplevel을 이용해 바꾼다. swarplevel을 이용해 계층을 바꿀때 sort_index를 이용해 사전적 순서로 정렬하면 데이터를 선택하는 성능이 훨씬..
판다스 - pd.cut, pd.qcut [cut 함수] 균등한 길이의 그룹 데이터의 분산에 따라 각각의 그룹마다 데이터 수가 다르게 나뉜다. [qcut 함수] 같은 크기의 그룹 표본 변위치를 기반으로 데이터를 나누어, 적당히 같은 크기의 그룹으로 나눌 수 있다. 연속성 데이터를 개별로 분할하거나 분석을 위해 그룹별로 나누기도 한다. 나이대가 이렇게 있다고 해보자 이를 네구간으로 나누려면 pd.cut을 이용하면 된다. https://steadiness-193.tistory.com/19 판다스 - 구간 분할(pd.cut) 데이터 불러오기 horsepower를 3구간으로 저출력 / 보통출력 / 고출력 나누고자 한다. 이때 pd.cut을 이용하는데 (데이터배열, 구간, 레이블이름, 경계 포함) 중 데이터배열과 구간은 필수 입력이다. in steadi..
판다스 - 데이터프레임 축 색인 이름 바꾸기 새로운 자료 구조를 만들지 않고 그 자리에서 바로 축 이름을 변경하는 것이 가능하다. 데이터 불러오기 여기서 인덱스를 첫 4글자를 따와서 대문자로 바꿔보자. 이를 적용할 함수를 우선 설정한다. 축 색인에도 map 메서드가 있다. (시리즈도 있다.) 원래 객체를 변경하지 않고 새로운 객체를 생성하려면 rename 메서드를 이용한다. 인덱스는 title을 이용해 첫 글자만 대문자로 바꿨고 컬럼은 upper를 이용해 모두 대문자로 바꿨다. 딕셔너리를 이용해 축 이름 일부만 변경도 가능하다.
판다스 - 데이터프레임의 인덱스 정렬 : sort_index 인덱스의 순서가 마음에 들지 않는다면 혹은 컬럼의 순서가 마음에 들지 않는다면 sort_index 메서드를 이용한다. sort_index() - 기본축 axis=0 (행 방향↓) - 기본 정렬 : 오름차순 기본적으로 축은 axis=0 기준이다. one이 위로 올라왔다. 컬럼 정렬 컬럼을 정렬하려면 axis=1을 넣어준다. 알파벳 순으로 컬럼이 정렬되었다. 내림차순 정렬은 ascending=False를 넣어주면 된다.
판다스 - 데이터프레임과 시리즈의 연산 데이터프레임과 시리즈의 연산 데이터프레임과 시리즈의 연산은 브로드캐스팅이며 축은 기본적으로 axis=1로 동작한다. 시리즈의 색인을 데이터프레임의 컬럼에 맞추고 아래 로우로 전파한다. 예제 이런 데이터프레임과 시리즈가 있다. 운이 좋게도 데이터프레임의 컬럼과 시리즈의 인덱스가 같다. axis=1이므로 행 기준 열방향 동작이다. 즉, 한 행씩 가져와서 시리즈끼리 연산한다고 생각하면 된다. 시리즈끼리는 인덱스가 같아야지만 연산이 가능하다. 이렇게 한 행씩 브로드캐스팅을 통해 연산을 하는 것이다. 위 그림은 동작 원리를 나타냈고 실제 동작은 다음과 같다. 시리즈의 색인을 데이터프레임의 컬럼에 맞추고 아래 로우로 전파한다. 색인과 컬럼이 모두 동일하지 않다면? 예제 d와 f는 짝이 없다. 예상했던대로 짝이 없는..
판다스 - 데이터프레임 팁 1. 라벨이름으로 슬라이싱하면 시작점과 끝점을 포함한다. 일반 파이썬의 슬라이싱과 달리 끝점을 포함하여 나왔다. 2. 슬라이싱으로 로우 선택 1번과 다르게 숫자로 슬라이싱을 해, Utah 행은 나오지 않았다. 3. 데이터프레임 간의 산술연산 데이터프레임은 공통되는 컬럼과 인덱스끼리 연산이 가능하다. 따라서 df1과 df2를 더하게 되면 df2에만 있던 3번행와 e컬럼은 NaN이 된다. 이를 방지하기 위한 fill_value가 있다. NaN을 0으로 바꾸는 것이 아니라, NaN이 되기 전에 0으로 바꾼후 0과 연산을 하는 것이다. 뺄셈 df1에서 df2를 뺀 것이다. 이를 반대로 하려면 rsub을 이용하면 된다. df2에서 df1을 뺀 것이다.
판다스 - 데이터프레임 살펴보기 데이터 개수 확인 count메서드는 데이터프레임의 각 열이 가지고 있는 데이터 개수를 시리즈 객체로 반환 * 주의 : NaN은 빼고 카운트됨 특정 열을 카운트하고 싶다면 df1['컬럼명'].count() 각 열의 고유값 개수 value_counts 메서드는 시리즈 객채의 고유값 개수를 센다. 고유값이 행 인덱스, 고유값의 개수가 데이터 값이 되는 시리즈가 만들어진다. 각 열의 고유 값 고유값만 보고 싶다면 unique 메서드를 이용한다. 중복된 값은 하나로만 나오게 된다. 타이타닉 데이터로 활용하며 살펴보기 seaborn에 내장된 titanic 데이터를 불러왔다. 전체 데이터프레임을 세보고 하나의 컬럼도 세보고 하나의 컬럼의 고유값을 살펴본다. 전체 데이터의 평균값 전체 데이터의 최대값을 볼 수 있다. ..
판다스 - 여러 개의 데이터프레임을 하나의 Excel 파일로 저장 : ExcelWriter 두개 이상의 데이터프레임을 하나의 엑셀파일에 저장 Sheet1, Sheet2 pd.ExcelWriter ExcelWriter() 함수로 생성한 워크북 객체를 writer 변수에 저장하고 현재 폴더에 df_excelwirter이름으로 저장한다. sheet_name에 몇번째 워크시트에 넣을지 입력한다. writer.save() 로 마무리