판다스 데이터프레임 문자열 조건 검색법 총정리데이터프레임 문자열 조건 검색 방법을 모아봤습니다.일반적인 방법== 조건을 이용하는 방법이 가장 일반적입니다.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 ..
값 뽑아내기 자신이 원하는 값을 범위에서 추출하는 방법입니다. 예를 들어, 주소록에서 20세 이상 여자 또는 남자인 경우의 데이터를 가져오거나 키가 170이상인 경우의 데이터를 가져올 수 있습니다. 어쨋든 조건을 달면 거기에 맞는 데이터만 출력해줍니다. 잘 이용하면 자동화도 가능합니다. FILTER 사용하기 FILTER는 다음과 같이 씁니다. =FILTER(범위, 조건1, 조건2, ...) 범위를 정하고 조건을 정하면 그만입니다. 간단한 예제(조건에 맞는 데이터가져오기) 간단한 예제를 만들었습니다. 조건에 맞는 경우 가져오게 합니다. 위에서 언급했던 것과 비슷하게 30세이상 이면서 여자인 경우인 데이터만 가져오겠습니다. =FILTER(A1:D21,B1:B21>=30,C1:C21="여") 함수를 조건으로 ..
데이터프레임 표를 웹에 나타내기 데이터프레임은 데이터를 표 형식으로 표시하고 저장하는 데 매우 유용한 판다스(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를 한번..
파이썬으로 선형회귀 모델 만들기 이전 포스팅에서 선형회귀에 대한 이론적인 내용을 했었는데 파이썬으로 구현할 때 본의아니게 많이 어렵게 코딩을 한 것 같습니다. 그래서 scikit-learn 과 statsmodel을 이용해 선형회귀를 구현하는 방법을 포스팅합니다. 이미 되어있는 걸 가져다 쓰면 되기 때문에 간단합니다. scikit-learn 을 이용한 방법 numpy와 scikit-learn을 이용한 방법입니다. 선형회귀 모델에 데이터를 훈련해서 회귀계수를 찾아냅니다. 먼저 데이터를 가져옵니다. 예제이므로 간단하게 만들었습니다. 실제 데이터를 가져온다면 입력데이터와 타킷데이터를 구분합니다. import numpy as np from sklearn.linear_model import LinearRegress..
상관계수와 회귀계수 관계 상관관계와 회귀계수의 관계에 대해서 수학적으로 알아볼까 합니다. 막 유용하진 않습니다. 다만, 생각을 다른 방향으로 뻗어나갈때 중간다리 역할을 해줍니다. 모르는 것보다는 나은 것 같습니다. 관계를 알기에 앞서 노테이션을 정하고 가겠습니다. 그냥 식이 복잡해서 간단하게 하기 위함입니다. $$ S_{xx} = \frac{1}{n} \sum_{i=1}^{n}{(x_i-\bar x)^2} $$ $$ S_{yy} = \frac{1}{n} \sum_{i=1}^{n}{(y_i-\bar y)^2} $$ $$ S_{xy} = \frac{1}{n} \sum_{i=1}^{n}{(x_i-\bar x)(y_i-\bar y)} $$ 그냥 분산과 공분산을 다르게 쓴 것뿐입니다. 이 노테이션을 사용해서 상관..
공분산과 상관관계: 데이터 분석의 핵심 개념 데이터 분석 및 통계학 분야에서 중요한 두 가지 개념인 공분산과 상관관계에 대해 알아보겠습니다. 이 개념들은 데이터 간의 관계를 이해하고 해석하는 데 도움을 주는 중요한 역할을 합니다. 1. 공분산 (Covariance) 공분산은 두 변수 간의 관계를 측정하는 지표 중 하나입니다. 두 변수가 어떻게 함께 움직이는지를 보여주는데 사용됩니다. 공분산의 수학적 정의는 다음과 같습니다. $$ Cov(X, Y) = E[(X-\mu_X)(Y-\mu_Y)] $$ 여기서, X와 Y는 두 변수, Xᵢ와 Yᵢ는 각각의 변수의 개별 데이터 포인트, $μ_X$와 $μ_Y$는 각각의 변수 X와 Y의 평균, n은 데이터 갯수입니다. 정의에서 보듯이 공분산은 X의 편차와 Y의 편차를 곱..
병렬 컴퓨팅 수행하기 파이썬은 데이터 과학 및 기계 학습 분야에서 인기 있는 언어 중 하나로, 데이터 처리와 분석에 탁월한 퍼포먼스를 자랑합니다. 그러나 대규모 데이터셋을 처리하거나 병렬 컴퓨팅을 수행해야 할 때 파이썬이 느리다보니 여러 라이브러리를 사용하면서 극복하고 있습니다. 빠른 처리를 위해 병렬 컴퓨팅 또한 좋은 방법이 될 수 있는데 Dask를 통해서 병렬 처리를 해보는게 어떨까 싶습니다. Dask 소개 Dask는 병렬 컴퓨팅 및 분산 데이터 처리를 위한 파이썬 라이브러리로, NumPy와 Pandas와 유사한 API를 제공하고 대규모 데이터셋을 처리하고 병렬화하는 기능을 제공합니다.즉, Numpy처럼 Pandas처럼 할수 있으면서 병렬처리 기능을 첨가할 수 있다는 얘기입니다. Dask의 주요 기능..
판다스로 Json 불러오기 Json(JavaScript Object Notation) 은 Javascript 객체 문법을 따르는 문자 기반의 데이터이입니다. 네트워크를 통해 전송할 때 유용한 면이 많기 때문에 다양한 곳에서 쉽게 볼 수 있는 포맷입니다. 데이터를 크롤링하거나 다른 외부에서 가져올 때 Json 객체로 변환되어서 가져오는 경우가 많은데 파이썬에서 json 모듈을 이용해 json 파일을 열 수도 있지만 보기 불편합니다. 가독성을 위해 판다스에서 Json파일을 저장, 불러올 수 있습니다. pd.read_json() 함수를 사용하여 JSON 파일이나 문자열을 데이터프레임으로 변환할 수 있습니다. 아래는 JSON 데이터를 판다스 데이터프레임으로 불러오는 예시 코드입니다: JSON 파일을 데이터프레임..
엑셀 파일 빠르게 읽어보자 빅데이터를 다루다보면 엑셀 파일 불러올 수 밖에 없는데 데이터 자체가 크다보니 불러오는 시간이 많이 소요됩니다. 이걸 여러번 불러온다면 곤욕이 따로 없겠죠? 이전 포스팅에서 xlsx에서 csv로 변환하는 방법을 다뤘었는데 csv로 변환하고 읽는 속도가 약 70배 빨라지는 것을 알 수 있었습니다. 이번 포스팅에서는 본격적으로 불러오는 속도를 극대화하는 방법에 대해 소개할까 합니다. DASK 모듈 이용하기 방법은 생각보다 간단합니다. 데이터를 불러올 때 병렬처리를 한다면 보다 빠르게 불러올 수 있게 됩니다. 그런데 이걸 코드로 만들어내면 귀찮아지니 다 만들어진 모듈을 사용해서 간편하게 불러올 수 있을 거라 생각합니다. DASK라는 모듈을 쓸 건데요. 이 모듈은 파이썬에서 분산 병렬..
시트만 다른데 매번 다시 불러야하나? 판다스에서 엑셀시트를 불러오는 방법으로 보통 read_excel(sheet_name = '시트이름')을 쓰게 되는데 이러면 시트를 부를 때마다 excel을 부르고서 sheet_name을 다르게 해서 엑셀파일 자체를 다시 읽게 됩니다. 즉, 시간소비가 많다는 것이죠. (이런 시간낭비...) 그래서 엑셀 파일을 객체로 만드는 방법을 알아냈습니다. 판다스 내에 엑셀 파일을 객체로 불러와서 시트만 불러내는 방식을 사용할 수 있더라고요. 이 방식을 사용하면 엑셀파일은 불러와있는 상태에서 시트만 선택적으로 꺼내쓰는 방식으로 바뀝니다. 시간도 절약하고 시트관리가 좀 더 용이해집니다. 엑셀 파일 객체로 불러오기(ExcelFile) 판다스에 ExcelFile이라는 메쏘드가 있습니다...
NumPy는 파이썬에서 과학적 계산을 위한 핵심 라이브러리로, 다차원 배열을 다루는데 매우 유용합니다. 이러한 다차원 배열은 종종 복잡한 계산을 수행하는 데 필요한 데이터 구조로 사용됩니다. 그러나 다차원 배열을 단일 차원으로 변환하여 데이터를 보다 효율적으로 처리하고자 할 때가 있습니다. 이를 평탄화(flattening)라고 합니다. 보통 머신러닝을 하게 되면 데이터를 분석하려는 머신이 단일 차원을 원하면 평탄화를 쓸 수밖에 없습니다. 평탄화를 꼭 Numpy로 해야하는 건 아니지만 데이터를 보통 numpyarray로 만들기도 하고 생각보다 아주 많이 간편합니다. 평탄화 작업 np.ravel() 함수를 활용한 평탄화 NumPy는 다차원 배열을 평탄화하기 위해 np.ravel() 함수를 제공합니다. 이 함..
인터넷에 있는 표 가져오는 방법입니다. 웹에서 표를 복사해서 word나 기타 노트앱에 바로 가져오면 아주 그냥.... 엉망진창으로 가져오기 때문에 그걸 수정하느니 그냥 손으로 쓰고 만다는 생각이 절로 듭니다. 개발자 모드 사용 아는 사람은 다 알겠지만 인터넷상의 표는 HTML로 가져오기 쉽습니다. 저 사이트를 쓸 필요는 없습니다. 개발자 모드에서 html 가져오면 됩니다. 물론 해당 사이트에서 조치를 취해놓지 않은 경우에 한해서만 가능합니다. 위 그림처럼 버튼을 클릭해서 웹에 있는 표를 가져오면 됩니다. 그럼 그림처럼 html내에서 table의 위치로 이동합니다. 해당 element를 복사하고 옮겨넣으면 됩니다. 번거롭긴 하지만 급할때는 좋은것같기도 하지만 html이 정리되지 않은 상태로 복사될 수도 있..
요즘은 어떤지 모르겠지만 저는 개인적으로 자연어 맨처음 시작할 때 공부용으로 쓰던 NLTK입니다. 한글지원은 약하고 주로 영어를 사용합니다. 이미 생성AI가 나오는 판국에 이제와서 무슨 자연어 처리일까 싶겠지만 인공지능은 데이터기반으로 하기 때문에 내가 데이터만 잘 가져온다면 어디서든 새로운 걸 만들어낼 수 있습니다. 모두가 구글 될게 아니기 때문에 자신의 주변에서 필요한 부분이 분명 있을테니 영감을 얻는 도구로써 한번 체험해보시길 바랍니다. NLTK 소개 NLTK(Natural Language Toolkit)은 파이썬에서 자연어 처리를 수행하기 위한 라이브러리입니다. 텍스트 데이터 분석, 토큰화, 형태소 분석, 품사 태깅, 문장 구문 분석 등 다양한 자연어 처리 작업을 지원하며, 학술 연구부터 실제 응..