판다스(Pandas)에서 조건에 맞는 행 제외하는 방법판다스를 활용하다 보면 특정 조건에 맞는 행만 선택하거나 제외해야 하는 상황이 자주 발생합니다. 이 글에서는 판다스에서 특정 조건에 맞는 행을 제외하는 방법을 여러 가지 예제를 통해 살펴보겠습니다. 데이터 분석과 전처리 과정에서 매우 유용한 테크닉이니 꼭 알아두세요!조건에 맞는 행 제외하기: 기본 원리판다스에서 조건에 맞는 행을 제외하려면 부울 인덱싱(Boolean Indexing)과 ~ 연산자를 사용합니다. ~는 조건을 반전(negate)시켜 해당 조건에 맞는 행을 제외하도록 도와줍니다. import pandas as pd데이터프레임 생성data = {'이름': ['Alice', 'Bob', 'Charlie', 'David'],'나이': [25, ..
mysql 테이블 데이터프레임으로 불러오기sql 테이블을 데이터프레임으로 불러오는 방법입니다.큰 틀로 본다면 mysql에 연결한 후 해당 서버에서 테이블을 pd.read_sql()을 통해서 가져옵니다.pymysql을 이용한 방법pymysql 라이브러리를 이용해 테이블을 불러오겠습니다.pymysql로 mysql에 연결합니다.import pandas as pdimport pymysql# 데이터베이스 연결 설정con = pymysql.connect( host='localhost', user='root', password='비밀번호',port= port, database='your_database')# SQL 쿼리 실행 및 데이터프레임으로 변환 query = "SELECT * FROM your_..
데이터프레임 값 변경하기판다스(Pandas) 데이터프레임에서 특정 값을 원하는 값으로 변경하는 방법은 여러 가지가 있습니다. 이전에 replace로 변경하기에 대한 내용을 포스팅했었는데 비슷한 내용이지만 이번 포스팅에서는 replace 없이 다른 메쏘드를 통해 사용하는 방법을 소개합니다. 1. 특정 조건에 맞는 값 변경하기import pandas as pd# 예시 데이터프레임 생성data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]}df = pd.DataFrame(data)# 조건을 만족하는 값을 원하는 값으로 변경df.loc[df['A'] == 3, 'B'] = 100df.iloc[2, 0] = 7df loc를 이용해 'A' 열에서 값이 3..
데이터프레임 컬럼값 타입 확인하고 바꾸기데이터를 외부에서 받아오면 불가피하게 타입이 고르지 못하고 중구난방으로 다운로드됩니다. 이 상태로 데이터프레임으로 전체 행, 열 계산을 하려고 할 때 애를 먹을 수 있습니다. 이번 포스팅은 컬럼값 타입을 확인하고 혹시 다른 타입이 있다면 어떻게 바꿔야 하는지에 대해 소개합니다.컬럼값 타입을 확인하려면 isintance 함수를 알아야 합니다.파이썬 타입 확인 함수 isintance 파이썬에서 데이터타입을 boolean으로 판단하려면 isinstance()함수 사용합니다. isintance는 파이썬의 내장함수라서 따로 설치할 라이브러리가 없습니다. 파이썬이 설치되어 있다면 바로 쓸 수 있습니다. isinstance()는 object(변수나 객체), classinfo(타..
판다스 데이터프레임 문자열 조건 검색법 총정리데이터프레임 문자열 조건 검색 방법을 모아봤습니다.일반적인 방법== 조건을 이용하는 방법이 가장 일반적입니다.import pandas as pd# 예제 데이터프레임 생성data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [24, 27, 22, 32], 'City': ['New York', 'Los Angeles', 'Chicago', 'Miami']}df = pd.DataFrame(data)## Los Angeles 찾기result_and = df[df['City'] == 'Los Angeles']print(result_and)하지만, ==을 사용하면 정확히 일치한..
교차표 만들기 판다스의 메쏘드중 하나인 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',..