교차표 만들기 판다스의 메쏘드중 하나인 crosstab을 이용해 교차표를 생성합니다. 주로 범주형 변수에 쓰이는데 시각적으로 표현하기 쉽게 만드는 점에서 은근 쓰이는 곳이 많습니다. crosstab() 사용방법 사용방법은 아주 간단합니다. 교차표를 만들 두개의 범주형 변수를 가져오면 그만입니다. # 예제 데이터 프레임 생성 data = {'A': ['one', 'one', 'two', 'three'] * 3, 'B': ['A', 'B', 'C'] * 4, 'C': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 2, 'D': [1, 2, 2, 2, 1, 1, 3, 3, 3,1,2,3]} df = pd.DataFrame(data) # crosstab 생성 cross_tab ..
데이터프레임 표를 웹에 나타내기 데이터프레임은 데이터를 표 형식으로 표시하고 저장하는 데 매우 유용한 판다스(Pandas) 라이브러리의 핵심 데이터 구조입니다. 이것을 그대로 HTML에 옮기고자 합니다. 즉, 데이터프레임을 HTML로 변환하면 데이터를 웹 페이지에 표시하거나 공유할 때 편리하게 사용할 수 있을겁니다. 이번 포스팅에서는 데이터프레임 표를 HTML에 변환하는 방법을 소개합니다. 판다스 데이터프레임 생성 먼저, 데이터프레임을 생성하고 데이터를 채워봅시다. 예시로 사용할 간단한 데이터프레임을 만들어보겠습니다. import pandas as pd data = {'이름': ['Alice', 'Bob', 'Charlie'], '나이': [25, 30, 35]} df = pd.DataFrame(data..
DtypeWarning 잘 불러오던 csv가 간혹 DtypeWarning 이라고 경고가 뜹니다. DtypeWarning: Columns (37,66) have mixed types. Specify dtype option on import or set low_memory=False. 특정 컬럼의 type이 섞여있어서 결정할 수 없다고 합니다. 그럼 다 object로 하지 않았나? 왜저러는걸까? 싶은데 컴퓨터가 인식을 그렇게한다니까 어떻게 할 수 있는 건 아닌 것 같습니다. 저 경고를 무시하고 코딩실행을 하니깐 확실히 작업속도가 현저히 느려졌습니다. 메모리 도둑이 따로없네요. 해결방법 해결방법은 두가지입니다. (1) 문제가 되는 컬럼의 타입을 정해준다 (2) csv에 쓰는 메모리 제한을 없애서 csv를 한번..
데이터 프레임을 리스트로 변환하는 방법입니다. 데이터 프레임도 굳이 리스트로 바꾸는 이유는 머신러닝이나 딮러닝을 할 때 리스트로 input 값을 넣어야 할 때가 있습니다. 근데 데이터 전처리는 판다스가 훨씬 효과적이기 때문에 전처리 후 리스트 형태로 바꾸어 input값으로 쓸 수 있습니다. 데이터프레임에서 column별로 가져오면 되지 않느냐?라고 반문할 수도 있지만 머신러닝이나 딮러닝 처리중 계산 때문에 불가할 수 있고 여러 클래스인경우 벡터화해서 계산하는 것이 훨씬 빠르기 때문에 ndarray로 바꾸는 게 용이합니다. 데이터프레임에서 리스트와 numpy 배열로 변환하는 방법을 알려드리겠습니다. 데이터는 머신러닝 연습용으로 많이 쓰는 꽃 분석 데이터인 iris로 하겠습니다. import pandas a..
2차원 데이터의 컬럼 이름 가져오는 방법입니다. 직관적으로 가져오는 방법이 있고 attributes라는 함수를 거쳐 하나씩 불러오는 방법이 있습니다. 먼저 df를 만들겠습니다. class1 = c(100,45,80,75,30) class2 = c(70,80,60,50,40) class3 = c(40,50,60,70,80) class4 = c(10,25,100,70,35) class5 = c(60,55,55,45,35) df = data.frame('class1'=class1,'class2'=class2,'class3'=class3,'class4'=class4,'class5'=class5) df 다음과 같이 데이터프레임을 만들었습니다. 직관적 방법 직관적으로 데이터프레임에서 바로 열을 가져올 수 있습니다...
R에서 가장 많이 쓰이게 되는 데이터 프레임(DataFrame) 내용입니다. 일단 데이터 프레임은 벡터들로 이루어진 집합으로 볼 수 있습니다. 그런데 행과 열을 가지는 2차원 데이터 타입이고 다양한 형식을 한데 모아서 저장을 할 수 있습니다. 행렬은 동일한 데이터 타입을 가져야만 생성이 되었지만 데이터프레임은 꼭 그렇지 않아도 됩니다. 데이터프레임(data frame) 생성하기 데이터 프레임은 다음과 같은 만들 수 있습니다. 파라미터는 딱히 존재하지 않고 key-value형식으로 이름과 벡터를 매칭시켜주면 됩니다. data.frame(변수명1=벡터1,변수명=벡터2,...) >df = data.frame(col1=c(1,2,3,4),col2=c('a','b','c','d')) >df col1 col2 1 ..
판다스를 사용하다보면 내가 원하는만큼만 잘라서 다시 DataFrame을 만들어서 데이터 분석을 하고 싶을 때가 있습니다. 저는 특히 시간데이터를 많이 다루다 보니 인덱스 슬라이싱을 해야하는 경우가 많이 생기는 것 같습니다. 그럴 때마다 항상 bool을 이용한 방식으로 인덱스 나누기를 했는데 인덱스가 여러개거나 논리가 많아지면 괄호 하나 따라서 해석이 잘못 되기도 하고 헷갈리기도 합니다. 그러면 자연스럽게 오류가 발생하고 오류를 해결하느라 애를 많이 먹고 시간은 시간대로 흘러갔습니다. 이런 불편함을 감수하던 차에 우연히 새로운 방법을 알게 되서 까먹으면 다시 보려고 포스팅으로 남깁니다. Bool 로 인덱스 나누기 저의 예전 방법은 and, or을 이용한 방식이었는데 CJ제일제당의 과거 주가 데이터로 보여드..
두개 이상의 DataFrame을 합치는 방법에 대해 알아보겠습니다. 판다스에서는 합치는 메소드로 merge(), join(), concat() 등이 있는데 이번 포스팅에서는 merge()에 대해서만 살펴보겠습니다. DataFrame 두개를 먼저 임의로 만들겠습니다. import pandas as pd data1 = {'No':[1001,1002,1003,1005,1006], 'Name':['David','Terry','Tim','John','Max'], 'Department':['Management','Engineer','Engineer','Secretary','Delivery'], 'Entered Date':['2010-01-03','2000-05-20','2007-07-07','2019-03-13',..