본문 바로가기
반응형

Python/Pandas37

Pandas Pro가 되기 위해 마스터해야 하는 30가지 방법 Pandas는 의심의 여지없이 테이블 형식 데이터 랭글링 및 처리 작업을 위해 Python으로 구축된 최고의 라이브러리 중 하나입니다. 오픈 소스이기 때문에 전 세계 여러 지역의 수많은 개발자가 개발에 기여하여 다양한 작업을 위한 수백 가지 방법을 지원하여 오늘날의 위치에 도달했습니다. 그러나 초보자가 Pandas 라이브러리에서 확고한 자리를 잡으려고 하는 경우 Pandas의 공식 문서로 시작하면 처음에는 상황이 매우 벅차고 압도적으로 보일 수 있습니다. (이거 언제다 익히냐????) 이번 포스팅에서는 Pandas를 시작하는 데 도움을 주기 위한 것입니다. 이번 포스팅에서는 Pandas를 사용한 경험을 되돌아보고, 거의 항상 사용했던 30가지 구체적인 방법에 대해서 살펴보겠습니다. 라이브러리 가져오기 P.. 2023. 5. 28.
특정 행(Row) 혹은 열(Column) 선택을 위한 Pandas 함수 - filter 빅데이터 분석을 수행할 때, 가장 기본이 되는 스킬 중 하나는 특정 조건을 만족하는 행(Row)만 추출하거나 특정 열(column)만 추출하는 것입니다. 이런 작업을 수행하는 데 필요한 여러 함수들을 파이썬에서 제공하고 있는데요. 이번 포스팅에서는 pandas내에 있는 filter함수에 대해서 알아볼게요. pandas.DataFrame.filter 함수의 구문은 DataFrame.filter(items=None, like=None, regex=None, axis=None) items: list-like like: str regex: str (regular expression) axis{0 or ‘index’, 1 or ‘columns’, None}, default None 으로 구성되어 있어요. pand.. 2023. 5. 21.
데이터 랭글링(데이터 분석을 위한 15가지 Pandas 기능) 데이터 분석가를 위한 최고의 무기! Pandas! Python의 이 강력한 라이브러리는 데이터 조작 및 탐색을 쉽고 즐겁게 만듭니다. 이번 포스팅에서는 "Palmer Penguins"라는 인기 있는 데이터 세트를 사용하여 Pandas의 고급 기능 중 일부를 살펴보고, 사용 방법의 예를 제공하도록 하겠습니다. # Palmer Penguins 데이터 불러오기 pip install palmerpenguins # palmerpenguins 라이브러리 설치하기 import pandas as pd # pandas 라이브러리 로딩 import seaborn as sns #seaborn 라이브러리 로딩 from palmerpenguins import load_penguins sns.set_style('whitegrid.. 2023. 2. 24.
Python-Pandas 함수 및 메서드(30) 이번 포스팅에서는 데이터 분석에 자주 사용되는 30가지의 유용한 python-pandas 함수/메서드를 정리하겠습니다. 1. 데이터 로드 및 이해 2. 열 또는 행 선택 3. 하나 이상의 열을 사용한 데이터 필터링 4. 데이터 정렬 및 열 삭제 5. 데이터 요약 사용한 데이터는 Kaggle의 Airlines.csv입니다. pandas 패키지를 로드하는 것으로 시작하겠습니다. import pandas as pd 1. CSV 파일 로드 # 1. csv 파일의 데이터를 메모리에 로딩 airlines = pd.read_csv("C:/Python_apply/Airlines.csv") 2. 데이터 프레임의 행과 열 수 얻기 # 2. Shape of a dataframe airlines.shape # 결과: (539.. 2022. 9. 18.
거의 모든 데이터 분석 작업을 해결하는 Pandas 필터링 방법 필터링은 데이터 분석가를 위해 raw data를 필터링하는 핵심 키 작업 중 하나입니다. 이번 포스팅에서는 pandas에서 사용할 수 있는 다양한 필터링 방법을 설명 하도로 하겠습니다. 코드를 쉽게 재현할 수 있도록 필터링 작업에 가장 유명한 Titanic 데이터 세트를 사용했습니다. import pandas as pd titanic = pd.read_csv("D:/titanic.csv") titanic.head() 조건을 사용한 행 필터링 1) Location (loc) function 여기에서는 3등석 승객만 필터링하기 위해 pandas location functiond을 사용하겠습니다. titanicPclass3 = titanic.loc[titanic["Pclass"] == 3] titanicPcl.. 2022. 7. 2.
알아두면 유용한 pandas 단편 정보들 Pandas는 데이터 처리를 위한 강력한 라이브러리입니다. 데이터를 다루는 다양한 작업에 유용한 기능을 많이 제공하기 때문에 데이터 과학을 위한 맥가이버 칼과 같습니다. 이 도구를 효과적으로 사용하려면 몇 가지 트릭을 알아야 합니다. 본 포스팅에서는 정기적으로 사용하는 유용한 pandas 단편 정보에 대해 자세히 설명하겠습니다. Pandas 라이브러리에 대한 이해가 있는 경우 아래 정보들이 유용할 수 있습니다. Pandas에 익숙하지 않은 분들을 위해 몇 가지 예를 통해 라이브러리를 더 잘 이해하는 데 도움이 되도록 하겠습니다. 이 포스팅에서 사용된 데이터 세트는 Kaggle에 있는 자료입니다. (https://www.kaggle.com/competitions/house-prices-advanced-re.. 2022. 6. 30.
Map(), Apply(), ApplyMap() 함수 사용 방법 이번 포스팅에서는 map(), apply() 및 applymap()을 사용하는 방법과 언제 어떤 함수를 사용해야 하는지에 대해 알아보겠습니다. 이러한 함수는 DataFrame 열에 어떤 처리를 적용하고, 값을 업데이트하거나 새 열을 만들 수 있습니다. 세 가지 방법과 DataFrame, Series의 관계 이 세 가지 방법과 DataFrame, Series의 관계는 다음과 같이 구성됩니다. Data Frame Series map O apply O O applymap O map() 함수 사용 방법 map은 일부 규칙 또는 입력 대응에 따라 일부 Series의 값을 매핑합니다. 전달되면 딕셔너리 또는 Series 요소는 딕셔너리 또는 Series의 key를 기반으로 매핑됩니다. 누락된 값은 NaN으로 변환됩.. 2022. 6. 11.
Pandas 데이터를 그룹화하는 가장 좋은 방법(groupby, Grouper) 데이터를 분석 경험이 있으신 분들은 'groupby'가 가장 많이 사용되는 함수 중 하나라는 것에 모두 동의하실 겁니다. 그래서 이번 포스팅에서는 groupby를 사용하는 방법과 이와 연관된 Grouper의 활용법에 대해 살펴보겠습니다. 비행기록과 관련된 데이터를 활용하겠습니다. 데이터는 R nycflights13 라이브러리에 있는 flights 데이터 입니다. 우선 Pandas와 Numpy를 임포트 하고, 데이터를 불러오겠습니다. import pandas as pd import numpy as np flights = pd.read_csv("D:/Python_apply/flights.csv") flights.shape 데이터는 약 33만개, feature는 19개 정도 있네요. 데이터에 대한 간단한 정보.. 2022. 6. 1.
pandas value_counts() 함수 Pandas의 value_counts() 함수는 데이터분석을 하는데 있어, 가장 기초적이면서 일반적으로 사용되는 함수 중 하나입니다. 기본적으로 지정된 열의 각 값(value)에 대한 모든 발생 횟수를 반환합니다. 단순한 방법 이외에 여러 옵션을 사용해서 그 이상의 역할을 수행할 수 있습니다. 시작하려면 먼저 데이터가 필요합니다. 작은 데이터 프레임을 만들어서 여러 가지 옵션을 사용해 보겠습니다. import numpy as np import pandas as pd exData = {"Name": ["James","Dan","Jonathan","Eric","Joanna","Mary","Sue","Jim","Lionel","Tim"], "Sex":["Male","Male","Male","Male","Fem.. 2022. 5. 2.
Pandas 행 단위 연산 - iterrows(), itertuples(), iloc, loc 함수 데이터 분석을 하기 위한 전처리 작업이나 혹은 데이터 조작 시 데이터를 행 단위로 읽어서 처리해야 하는 상황이 많은 데요. 이럴 때, 활용할 수 있는 다양한 방안들이 있는데요. 여기서는 2가지 방안에 대해서 살펴보겠습니다. 실습 데이터: 붓꽃 데이터 조건: 데이터를 행 단위로 읽어 PetalWidth(꽃잎폭)이 0.2보다 작거나 같으면 0, 0.2보다 크고 1보다 작거나 같으면 1, 1보다 크고 2보다 작거나 같으면 2, 2보다 크면 3이라는 값을 가지는 group이라는 변수 생성하기 실습 데이터 1. iloc, loc 함수 활용 해당 함수에 대한 자세한 설명은 아래 링크를 참고해 주세요. [파이썬완전기초]데이터다루기Pandas기본 본 포스팅은 2021 NIPA AI 온라인 무료 교육의 AI 실무 기본 .. 2022. 3. 9.
pandas rank() 함수 - 숫자 데이터의 순위 계산 함수 이번 포스팅에서는 pandas 라이브러리에서 제공하는 숫자형 데이터에 대한 순위를 계산하는 함수 rank()에 대해서 알아보겠습니다. 예를 들어, [393,958,842]의 데이터에 함수를 적용하면 [3,1,2]가 반환됩니다. 기본적으로 동일한 값에 대해서는 해당 값의 순위 평균인 순위가 할당됩니다. DataFrame.rank( axis=0, method='average', numeric_only=NoDefault.no_default, na_option='keep', ascending=True, pct=False ) rank 함수에 대한 인수 설명은 아래와 같습니다. axis: 직접 순위에 대한 인덱스 {0 or ‘index’, 1 or ‘columns’}, default 0 method: {defaul.. 2022. 3. 6.
pandas 문자열 메서드 str. Series 및 Index에는 배열의 각 요소에 대해 쉽게 작동할 수 있도록 하는 일련의 문자열 처리 방법이 있습니다. 아마도 가장 중요한 것은 이러한 방법이 누락/NA 값을 자동으로 제외한다는 것입니다. 이것들은 str 속성을 통해 액세스 되며 일반적으로 동등한(스칼라) 내장 문자열 메서드와 일치하는 이름을 갖습니다. 주요 문자열 함수에 대한 리스트 str.lower(): 모든 문자열을 소문자로 변환 str.upper(): 모든 문자열을 대문자로 변환 str.len(): 문자열의 길이를 반환 str.strip(): 문자열에 포함되어 있는 좌/우 공백 제거 str.lstrip(): 문자열에 포함되어 있는 왼쪽 공백 제거 str.rstrip(): 문자열에 포함되어 있는 오른쪽 공백 제거 str.replac.. 2022. 2. 13.
pandas 데이터 결합 함수 merge() pandas 라이브러리 원문을 기반으로 하여 작성하였습니다. pandas는 SQL과 같은 관계형 데이터베이스와 매우 유사한 모든 기능을 갖춘 고성능 인메모리 조인 작업을 제공합니다. 이러한 방법은 다른 오픈 소스 구현(예: R의 base::merge.data.frame) 보다 훨씬 더 나은 성능을 보입니다(어떤 경우에는 10배 이상). 그 이유는 신중한 알고리즘 설계와 DataFrame의 데이터 내부 레이아웃 때문입니다. 데이터 결합에 가장 익숙한 도구인 SQL에 익숙하신 분들은 pandas의 merge 문법이 생소해 보일 수도 있어요. 2개의 도구를 비교해 가며 학습하시면 매우 흥미로울 거라고 생각합니다. pandas는 DataFrame 또는 명명된 Series 객체 간의 모든 표준 데이터베이스 조인 .. 2022. 2. 13.
pandas 데이터 구조 소개(DataFrame) 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. DataFrame은 잠재적으로 다른 유형의 열이 있는 2차원 레이블 데이터 구조입니다. 스프레드시트나 SQL 테이블 또는 Series 개체의 딕셔너리처럼 생각할 수 있습니다. 일반적으로 가장 일반적으로 사용되는 pandas 개체입니다. Series와 마찬가지로 DataFrame은 다양한 종류의 입력을 허용합니다. Dict of 1D ndarrays, lists, dicts, or Series 2-D numpy.ndarray Structured or record ndarray A Series Another DataFrame 데이터와 함께 인덱스(행 레이블) 및 열(열 레이블) 인수를 선택적으로 전달할 수 있습니다. 인덱스 및/.. 2022. 1. 29.
pandas 데이터 구조 소개(Series) 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 데이터 구조 소개 pandas의 기본 데이터 구조에 대한 개요부터 알아보도록 하겠습니다. 데이터 유형, 인덱싱 및 축 레이블 지정/정렬에 대한 기본 동작은 모든 개체에 적용됩니다. 시작하려면 NumPy와 pandas 라이브러리를 먼저 로드하도록 하겠습니다. import numpy as np import pandas as pd 다음은 반드시 알아야 할 기본 원칙입니다. 데이터 정렬은 본질적입니다. 레이블과 데이터 간의 연결은 사용자가 명시적으로 수행하지 않는 한 끊어지지 않습니다. 데이터 구조에 대해서 간략히 소개하고, 별도의 섹션에서 광범위한 기능 및 메서드 범주를 모두 알아보겠습니다. Series Series는 모든 데이터.. 2021. 10. 15.
Pandas Getting data in/out 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. CSV csv 파일에 쓰기 df.to_csv("foo.csv") csv 파일 읽기 pd.read_csv("foo.csv") Excel 엑셀 파일에 쓰기 df.to_excel("foo.xlsx", sheet_name="Sheet1") 엑셀 파일에서 읽기 pd.read_excel("foo.xlsx", "Sheet1", index_col=None, na_values=["NA"]) 2021. 9. 23.
Pandas Plotting 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. matplotlib API를 참조하기 위해 표준 규칙을 사용합니다. import matplotlib.pyplot as plt plt.close("all") close() 메서드는 Figure 창을 닫는 데 사용됩니다. ts = pd.Series(np.random.randn(1000), index=pd.date_range("1/1/2000", periods=1000)) ts = ts.cumsum() ts.plot(); DataFrame에서 plot() 메서드는 레이블이 있는 모든 열을 플롯 하는 데 편리합니다. df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, colum.. 2021. 9. 22.
Pandas Categoricals 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. Pandas는 DataFrame에 범주형 데이터를 포함할 수 있습니다. df = pd.DataFrame( ________{ ___________"id": [1, 2, 3, 4, 5, 6], ___________"raw_grade": ["a", "b", "b", "a", "a", "e"] ________} ) raw_grade의 값들을 범주형 자료 유형으로 변환할 수 있습니다. df["grade"] = df["raw_grade"].astype("category") df["grade"] 범주 이름을 보다 의미 있는 이름으로 변경하는 것이 좋습니다. df["grade"].cat.categories = ["very good", "g.. 2021. 9. 21.
Pandas Time series 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. pandas는 빈도 변환(예: 2차 데이터를 5분 데이터로 변환)을 하는 동안 리샘플링 작업을 수행하기 위한 간단하고 강력하며 효율적인 기능을 가지고 있습니다. 이는 금융 애플리케이션에서 매우 일반적이지만 이에 국한되지 않습니다. rng = pd.date_range("1/1/2012", periods=100, freq="S") rng ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng) ts ts.resample("5Min").sum() 시간대 표현 rng = pd.date_range("3/6/2012 00:00", periods=5, freq="D") rng ts .. 2021. 9. 20.
Pandas Reshaping 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 1. Stack tuples = list( _______________zip( ____________________*[ ["bar", "bar", "baz", "baz", "foo", "foo", "qux", "qux"], _____________________["one", "two", "one", "two", "one", "two", "one", "two"], ] ___________________) ______________) tuples index = pd.MultiIndex.from_tuples(tuples, names=["first", "second"]) index df = pd.DataFrame(np.random... 2021. 9. 19.
Pandas Grouping 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. "group by"는 다음 단계 중 하나 이상을 포함하는 프로세스를 나타냅니다. Splitting: 일부 기준에 따라 데이터를 그룹으로 분할 Applying: 각 그룹에 독립적으로 기능 적용 Combining: 결과를 데이터 구조로 결합 import numpy as np import pandas as pd df = pd.DataFrame( ________{ __________"A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo", "foo"], __________"B": ["one", "one", "two", "three", "two", "two", "one", "three"], __.. 2021. 9. 18.
Pandas Merge 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. pandas는 조인/병합 유형 작업의 경우 인덱스 및 관계 대수 기능에 대한 다양한 종류의 설정 논리를 사용하여 Series 및 DataFrame 개체를 쉽게 결합할 수 있는 다양한 기능을 제공합니다. 1. Concat concat()을 사용하여 pandas 객체 연결 df = pd.DataFrame(np.random.randn(10, 4)) df pieces = [df[:3], df[3:7], df[7:]] pieces pd.concat(pieces) (Note: DataFrame에 열을 추가하는 것은 비교적 빠릅니다. 그러나 행을 추가하려면 복사본이 필요하고 비용이 많이 들 수 있습니다. 반복적으로 레코드를 추가하여 Da.. 2021. 9. 17.
Pandas Operations 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 1. 통계 일반적으로 계산은 missing data를 제외합니다. 기술 통계 수행 df.mean() 다른 축에서 동일한 작업 df.mean(1) 차원이 다르고 정렬이 필요한 개체로 작업합니다. 또한 pandas는 지정된 차원을 따라 자동으로 브로드캐스트 합니다. s = pd.Series([1, 3, 5, np.nan, 6, 8], index=dates).shift(2) s df.sub(s, axis="index") 2. Apply 데이터에 함수 적용 df.apply(np.cumsum) df.apply(lambda x: x.max() - x.min()) 3. Histogramming s = pd.Series(np.random... 2021. 9. 16.
Pandas Missing data 본 포스팅은 pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 2021.09.14 - [Python/Pandas 기초다지기(10분)] - Pandas Selection(변수선택)에서 생성한 데이터를 계속 사용하도록 하겠습니다. pandas는 주로 np.nan 값을 사용하여 missing data를 나타냅니다. np.nan 값은 기본적으로 계산에 포함되지 않습니다. reindex를 사용하면 지정된 축의 인덱스를 변경/추가/삭제할 수 있습니다. 그러면 데이터 복사본이 반환됩니다. df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ["E"]) df1.loc[dates[0] : dates[1], "E"] = 1 df1 누락된 데이터 .. 2021. 9. 15.
Pandas Selection(변수선택) 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 선택 및 설정을 위한 표준 Python/NumPy 표현식은 직관적이고 대화형 작업에 유용하지만 프로덕션 코드의 경우 최적화된 pandas 데이터 액세스 방법(.at, .iat, .loc and .iloc)을 권장합니다. 2021.09.12 - Pandas 객체 생성에서 생성한 예제 데이터 프레임을 계속 사용하도록 하겠습니다. 1. 가져오기 df.A와 동일한 시리즈를 생성하는 단일 열 선택 df["A"] 행을 슬라이싱하는 []를 통해 선택 df[0:3] df["20130102":"20130104"] 2. 라벨에 의한 선택 레이블을 사용하여 횡단면 가져오기 df.loc[dates[0]] 레이블로 여러 축 선택 df.loc[:, .. 2021. 9. 14.
Pandas 데이터 보기(Viewing) 본 포스팅은 Pandas 패키지 라이브러리 원문을 기반으로 하여 작성하였습니다. 2021.09.12 - [Python/Pandas 기초다지기(10분)] - Pandas 객체 생성 포스팅에서 생성한 데이터 프레임을 그대로 활용하겠습니다. 데이터프레임의 상단 및 하단 행 보기 df.head() # df라는 데이터 프레임 상단 행 확인하기 df.tail(3) # df라는 데이터 프레임 하단 행 3줄 확인하기 인덱스 및 열 표시 방법 df.index # df라는 데이터 프레임에 index 확인하기 df.columns # df라는 데이터프레임의 열 확인하기 데이터 프레임을 배열로 전환 DataFrame.to_numpy()는 데이터 프레임 형태의 데이터를 NumPy 표현으로 제공합니다. DataFrame에 다른 데.. 2021. 9. 13.
Pandas 객체 생성 본 포스팅은 Pandas 패키지 홈페이지의 원문을 기반으로 하여 작성하였습니다. 값 목록을 전달하여 시리즈 데이터 생성 및 Pandas의 기본 정수 인덱스 생성 import numpy as np import pandas as pd s = pd.Series([1, 3, 5, np.nan, 6, 8]) s 날짜/시간 인덱스와 라벨이 지정된 열이 있는 NumPy 배열을 전달하여 DataFrame 만들기 dates = pd.date_range("20130101", periods=6) dates df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list("ABCD")) df 시리즈로 변환할 수 있는 개체의 dictionary를 전달하여 DataFrame.. 2021. 9. 12.
Pandas 텍스트 데이터 다루기 본 내용을 보기 전에 Python 사전 준비 및 Python 완전 기초를 먼저 이해하셔야 합니다. 본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다. 이번 포스팅에서는 titanic 승객 데이터를 활용하겠습니다. import pandas as pd titanic = pd.read_csv("D:/python_exer/titanic.csv") titanic.head() 1. 텍스트 데이터 다루기 1.1. 모든 이름 문자를 소문자로 변경하기 titanic["Name"].str.lower() 이름 열의 각 문자열을 소문자로 만들려면 이름 열을 선택하고, str 접근자를 추가하여 lower 메서드를 적용합니다. 따라서 각 문자열은 요소별로 변환됩니다. str 접근자를 사용할 때 여러 특수 문자열 메.. 2021. 8. 21.
Pandas 시계열 데이터 다루기 본 내용을 보기 전에 Python 사전 준비 및 Python 완전 기초를 먼저 이해하셔야 합니다. 본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다. 이번 포스팅에서 사용할 실습 데이터는 Air quality data입니다. 아래 데이터를 활용하시면 됩니다. (air_quality_no2_long.csv: NO2 및 2.5 마이크로미터 미만의 미립자 물질에 ​​대한 대기 품질 데이터로, openaq에서 제공하고 py-openaq 패키지를 사용하여 다운로드합니다. 파리, 앤트워프 및 런던에 있는 측정 스테이션 FR04014, BETR801 및 런던 웨스트민스터에 대한 NO2 값을 제공합니다.) import pandas as pd import matplotlib.pyplot as plt air.. 2021. 8. 20.
Pandas 활용 테이블 결합 방법 본 내용을 보기 전에 Python 사전 준비 및 Python 완전 기초를 먼저 이해하셔야 합니다. 본 포스팅은 pandas 공식 홈페이지를 기반으로 작성하였습니다. 본 포스팅의 실습을 위해 사용할 2개의 데이터 세트는 아래와 같습니다. (NO2에 대한 대기질 데이터로, openaq에서 제공하고 py-openaq 패키지를 사용하여 다운로드 가능. air_quality_no2_long.csv 데이터 세트는 각각 파리, 앤트워프 및 런던에 있는 측정 스테이션 FR04014, BETR801 및 런던 웨스트민스터에 대한 NO2 값 제공) import pandas as pd air_quality_no2 = pd.read_csv("D:/python_exer/air_quality_no2_long.csv", parse_.. 2021. 8. 19.
반응형