pandas

데이터 엔지니어링/실리콘밸리에서 날아온 데이터엔지니어링 스타터 키트

[7주차] SPARK 기본 개념 및 PANDAS와의 비교

SPARK 버클리 대학의 AMPLab에서 아파치 오픈소스 프로젝트로 2013년 시작한 프레임워크입니다. 하둡의 뒤를 잇는 2세대 빅데이터 기술로, Yarn(Yarn은 Hadoop 2.0, 3.0을 말한다고 보시면 됩니다.)을 분산환경으로 사용하고 Scala로 작성되었습니다. 일단 Spark의 기본적인 개념은 분산, 병렬 처리입니다. 데이터를 나누고 이 각각, Block(Partition)을 따로 가공 및 정제 후에 합치는 방식입니다. Spark은 하둡의 Mapreduce 방식과 다르게 디스크에 저장하는 방식이 아닌, 메모리에 저장함으로써 속도를 월등히 높였습니다. 특히 MapReduce는 프로그래밍에서 사용할 수 있는 Operator가 딱 두 개였고, SQL로 치면 GROUP BY, CASE WHEN 정..

데이터 분석 및 시각화/파이썬

[Python]Pandas at VS loc

at 단 하나의 값에만 접근할 수 있게 설계된 인덱서 loc 다량의 자료에 접근하기 위해 설계된 인덱서 팁 단 하나의 자료에 접근할 때는 at을 쓰는 것이 속도가 훨씬 빠르다. 패스트 인덱싱이라고도 한다. 예제 #### at 사용하기 def split_multicolumn(Series): df = pd.DataFrame(False, columns = (Series.dropna().str.split(';').str[0].unique()), index = Series.index) for idx, rep in Series.str.split(';').items(): if isinstance(rep, list): for one in rep: df.at[idx, one.strip()] ..

데이터 분석 및 시각화/파이썬

[Python]Pandas 특정 문자열 포함 행 찾고 대체하기(str.contains, where)

np.nan 값이 섞인 Series 자료형에 대해 특정 문자 값이 포함되었는지 사용할 수 있는 메서드로 contains()가 있습니다. 첫 인자로 포함된 것을 찾을 문자열을 넣어줍니다. na 키워드 인수를 활용하면 NaN 값을 대신할 값을 넣을 수 있습니다. _공식문서_str.contains _공식문서 where 예제 survey_df.where(~survey_df['Gender'].str.contains(';', na = False), np.nan, inplace = True) 코드 설명 survey_df의 Gender 컬럼 중 ;를 포함하는 행 찾기(na의 경우에는 False 처리) 앞 선 메소드의 True로 반환된 값들을 False로 전환(비트 연산자 ~) where로 ..

데이터 분석 및 시각화/파이썬

[Python] Pandas 시리즈 문자열 변경 메소드(replace)

YearsCode 컬럼의 'Less than 1 year'의 값은 0으로 변경하고, 'More than 50 years'의 값은 51로 일괄적으로 변경합니다. replace 메소드 survey_df['YearsCode'].replace('Less than 1 year', 0, inplace = True) survey_df['YearsCode'].replace('More than 50 years', 51, inplace = True)공식문서 링크 https://pandas.pydata.org/docs/reference/api/pandas.Series.replace.html?highlight=replace#pandas.Se..

데이터 분석 및 시각화/파이썬

[Python] 기초정리(Pandas(Merge, 시계열 자료, Groupby))

DataFrame 합성 Pandas는 두개 이상의 DataFrame을 하나로 합치는 데이터 병합(merge)이나 연결(concatenate)을 지원합니다. DataFrame merge() merge 함수는 두 데이터프레임의 공통 column 혹은 인덱스를 기준으로 두개의 테이블을 합친다. 이 때 기준이 되는 column, row의 데이터를 키(key)(PK)라고 합니다. df1 = pd.DataFrame({ '고객번호': [1001, 1002, 1003, 1004, 1005, 1006, 1007], '이름': ['둘리', '도우너', '또치', '길동', '희동', '마이콜', '영희'] }, columns=['고객번호', '이름']) df2 = pd.DataFrame({ '고객번호': [1001, 10..

데이터 분석 및 시각화/파이썬

[Python] 기초 정리(Pandas_DataFrame3)

DataFrame apply() 메서드 DataFrame에 대해 Function을 적용하고 싶다면 apply()함수를 활용하면 좋습니다. 이 메서드는 첫 인자로 함수를 필수값으로 받습니다. 경우에 따라 두번째 인자로 axis를 사용할 수 있습니다. axis 인자는 0이 default입니다. axis가 0 or 'index'인 경우 각 column에 대해 함수를 적용합니다. axis가 1 or 'columns'인 경우 각 row에 대해 함수를 적용합니다. 아래의 예제에서는 Numpy의 np.sort를 사용하여 적용해보았습니다. np.sqrt는 각 요소마다 적용되는 함수(universal function, ufunc)로 이 경우에는 np.sqrt(df)와 동일한 결과를 가져옵니다..

데이터 분석 및 시각화/파이썬

[Python] 기초 정리(Pandas_DataFrame2)

DataFrame 고급 인덱싱 DataFrame에서 특정한 데이터만 골라내는 것을 인덱싱이라고 합니다. 앞 절에서는 column에 대해 label, label list 인덱싱을, row에 대해 index(정수) 슬라이스 총 3가지 방식을 사용하여 데이터를 추출하는 방법을 살펴 봤습니다. 그런데 Pandas는 NumPy 배열과 같이 콤마(,)를 사용한 (row 인덱스, column 인덱스) 형식의 2차원 인덱싱을 지원하기 위해 다음과 같은 특별한 인덱서(indexer) 속성도 제공합니다. loc : label 값 기반의 2차원 인덱싱 iloc : 순서를 나타내는 정수 기반의 2차원 인덱싱 df.loc[row 인덱싱 값] df.loc[row 인덱싱 값, column 인덱싱 값]DataFrame 고급 인덱싱 ..

데이터 분석 및 시각화/파이썬

[Python] 기초 정리(Pandas_DataFrame)

DataFrame Class DataFrame은 Pandas의 주요 데이터 구조입니다. label된 row와 column, 두개의 축을 갖는 데이터 구조입니다. 산술 연산은 row와 column 모두 적용됩니다. Series 객체를 갖는 dictionary라고 생각하면 비슷합니다. 첫 인자로 data, 두 번째 인자로 index를 전달합니다. DataFrame은 각 column마다 자료형이 다를 수 있습니다. DataFrame 생성 Series가 1차원 벡터 데이터에 행방향 index(row index)를 붙인것이라면 DataFrame 클래스는 2차원 행렬 데이터에 index를 붙인 것과 형태가 비슷합니다. row와 column을 갖는 2차원이므로 각각의 행 데이터의 이름이 되는 행 index(row i..

데이터 분석 및 시각화/파이썬

[Python] 기초 정리(Pandas_Series)

Pandas(Panel Datas) 판다스는 주로 데이터 분석에 사용됩니다. 대부분의 데이터는 시계열(Series)이나 표(table)의 형태로 나타낼 수 있습니다. Pandas 패키지는 이러한 데이터를 다루기 위한 Series 클래스와 DataFrame 클래스를 제공합니다. 숫자 테이블과 시계열을 조작하기 위한 데이터 구조와 연산을 제공합니다. Pandas package import import pandas as pdSeries class Series 클래스는 Numpy에서 제공하는 1차원 배열과 그 모양이 비슷합니다. 하지만 Series data는 배열과 다르게 각 데이터의 의미를 표시하는 index를 붙일 수 있습니다. 데이터 자체는 값(value)라고 합니다. series = pd.Series([..

우상욱
'pandas' 태그의 글 목록