Data_Analysis (294) 썸네일형 리스트형 판다스 - stack, unstack 데이터를 생성해서 살펴보자 stack 이 result를 다시 unstack을 하게 되면 가장 안쪽의 레벨부터 끄집어낸다. 숫자 또는 이름을 전달할 수도 있다. 바깥쪽 레벨을 꺼내려면 레벨을 넣어주면 된다. 이름을 넣어도 동일한 결과가 나온다. 데이터프레임의 unstack 데이터프레임을 unstack할 때 unstack 레벨은 결과에서 가장 낮은 단계가 된다. 컬럼의 레벨 1로 unstack되었다. 판다스 - set_index(), reset_index() set_index() - 하나 이상의 컬럼을 색인으로 하는 새로운 DataFrame을 생성한다. reset_index() - 계층적 색인의 단계가 컬럼으로 이동한다. 판다스 데이터프레임에서 인덱스를 설정하는 법은 여러가지가 있다. 지금은 크게 두가지로 살펴보겠다. 데이터 만들기 인덱스 만들기 1. 데이터프레임의 인덱스 = 데이터프레임의 컬럼 Alpha 컬럼이 인덱스로 설정 됐다. 단, 이 방법의 단점은 인덱스와 같은 컬럼이 중복 된다는 것이다. 이렇게 되면 reset_index를 사용할 때 에러가 발생한다. 이미 Alpha 컬럼이 있다는 ValueError가 떴다. 따라서 중복컬럼이 굳이 필요 없다면 Alpha 컬럼을 삭제한 다음 reset_index를 실행하면 에러가 발생하지 않는다. 혹은 중복 컬럼 .. 판다스 - 계층적 색인 축에 대해 둘 이상의 색인 단계를 지정 데이터 만들기 이 데이터프레임의 인덱스와 컬럼은 이렇게 멀티인덱스 형식이다. loc, xs 인덱서 a 행만 보고 싶다면 a행의 2행을 보고 싶다면 세 방법 모두 가능하다. 전체 행에서 2행만 보고 싶다면 계층적 색인의 각 단계에 이름 설정하기 이렇게 하면 인덱서를 사용할 때 가독성을 높일 수 있다. 결과는 동일하다. 계층 정렬, 순서 바꾸기 인덱스의 순서가 다소 뒤죽박죽인 데이터프레임을 설정한다. 이를 정렬하기 위해선 sort_index를 사용한다. key1 의 원소가 사전적으로 정렬되었다. 계층의 순서는 swarplevel을 이용해 바꾼다. swarplevel을 이용해 계층을 바꿀때 sort_index를 이용해 사전적 순서로 정렬하면 데이터를 선택하는 성능이 훨씬.. 판다스 - 원핫인코딩 (One-Hot Encoding) https://steadiness-193.tistory.com/19 판다스 - 구간 분할(pd.cut) 데이터 불러오기 horsepower를 3구간으로 저출력 / 보통출력 / 고출력 나누고자 한다. 이때 pd.cut을 이용하는데 (데이터배열, 구간, 레이블이름, 경계 포함) 중 데이터배열과 구간은 필수 입력이다. in steadiness-193.tistory.com 위 포스팅에서 사용한 get_dummies 와 비슷하다. 문제의 데이터를 살펴보자 장르 컬럼에 2개 이상의 값이 같이 있는 행도 있다. 최종 목표는 이렇게 만드는 것이다. 장르별 컬럼을 다 만들고 해당 장르에 속한다면 1을, 아니라면 0을 넣는 것이다. 1. 모든 장르 찾기 extend를 이용해 all_genres 리스트에 모든 장르 데이터를.. 판다스 - 특잇값(outlier) 처리하기2 https://steadiness-193.tistory.com/68 판다스 - 특잇값(outlier) 처리하기 데이터프레임을 다루다보면 여러 아웃라이어들을 볼 수 있다. 이 값들은 가치가 있을 수 있지만 때로는 제외하고 처리해야할 때가 많다. 데이터 불러오기 data = pd.DataFrame(np.random.randn(1000, 4)) 요�� steadiness-193.tistory.com 위 포스팅의 방법을 이용하되 평균값으로 특잇값을 처리하는 것이 다르다. 데이터 불러오기 data = pd.DataFrame(np.random.randn(1000, 4)) 요약본 살펴보기 이 데이터도 평균값은 매우 작은데 최소값과 최대값의 절댓값이 3을 초과하는 데이터가 있다. 처리2. 컬럼별 평균값으로 대체하기 평.. 판다스 - 특잇값(outlier) 처리하기 데이터프레임을 다루다보면 여러 아웃라이어들을 볼 수 있다. 이 값들은 가치가 있을 수 있지만 때로는 제외하고 처리해야할 때가 많다. 데이터 불러오기 data = pd.DataFrame(np.random.randn(1000, 4)) 요약본을 살펴보자 각 컬럼별 평균값은 굉장히 작은데 최솟값과 최대값의 절대값이 3이 넘는 데이터가 있다. 이를 보통 특잇값이라고 부르며 적절한 값으로 대체할 필요가 있다. 처리전, 특잇값이 있는 행 살펴보기 절댓값이 3을 초과하는 값이 들어있는 모든 로우를 살펴보자 이때 쓰는 것이 any 메서드이다. 한 행에 절댓값이 3이 넘는 데이터가 하나라도 있다면 True를 반환한다. 0번, 2번행에 3이 넘는 데이터가 있다는 뜻이다. True는 1이니 이를 더하면 총 6개의 행에 아웃라.. 판다스 - 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를 이용해 모두 대문자로 바꿨다. 딕셔너리를 이용해 축 이름 일부만 변경도 가능하다. 이전 1 ··· 26 27 28 29 30 31 32 ··· 37 다음