전체 글

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

[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..

코딩테스트 스터디

[백준] 큐(queue)/카드

https://www.acmicpc.net/problem/2164 리스트는 pop 사용 시 자료를 뒤로 밀면서, 메모리를 많이쓴다. 큐는 그대로 두기 때문에 효율적 -- 나중에 더 정확히 정리 import sys from collections import deque num = int(input()) list_ = [] for x in range(1, num + 1): list_.append(x) queue = deque(list_) while len(queue) > 1: queue.popleft() first_one = queue.popleft() queue.append(first_one) print(queue[0])

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

[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] 클래스 연습문제

연습문제 기록 class Team: ### 클래스 속성 '''팀 객체를 만듭니다''' count = 0 order = [] def __init__(self, number, name = None, member = set()): ### 인스턴스 속성 self.number = number self.name = name self.__member = member Team.count += 1 Team.order.append(number) def add_member(self, name): '''팀원을 추가합니다''' # 해당 이름이 팀에 없을 경우 if name not in self.__member: self.__member.add..

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

[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([..

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

[Python] 기초 정리(Numpy)

넘파이 배열 Numpy는 파이썬 내장 모듈이 아닙니다. 따라서 별도의 설치를 요구합니다. 하지만 아나콘다 환경 사용시 기본적으로 Numpy 패키지를 설치없이 사용할 수 있습니다. 숫자 데이터를 좀 더 쉽고 편리하게 다룰 수 있게 도와주는 패키지 숫자 데이터를 효과적으로 다룰 수 있기 때문에, 데이터 과학 및 데이터 분석에 많이 사용되는 파이썬 패키지 Numpy는 다차원 배열 자료구조 클래스인, ndarray 클래스를 지원하며, 벡터와 행렬을 사용하는 선형대수 계산에 주로 사용 import numpy as np 리스트가 아닌 넘파이 배열을 사용하는 이유 구조적으로 속도가 빠르고, 메모리를 더 적게 사용한다.(같은 종류의 데이터만 저장하기 때문에) Numpy Array VS Python List Numpy ..

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

[Python] 기초 정리(Class)

객체지향(Object Oriented) 프로그래밍 객체지향 프로그래밍은 복잡한 문제를 잘게 나누어 객체로 만들고, 객체를 조합해서 문제를 해결합니다. 현실세계의 복잡한 문제를 처리하는데 유용하며 기능을 개선하고 발전시킬 때도 해당 클래스만 수정하면 되므로, 큰 프로젝트의 유지보수에도 매우 효율적입니다. 객체가 가진 데이터를 클래스의 속성(Attribute)이라 부르고 객체가 갖는 기능을 메서드(Method)라고 부릅니다. 클래스(Class) 클래스는 사용자, 정의 객체를 만들기 위한 주형이라고 생각하면 됩니다. 클래스 정의는 보통 클래스의 인스턴스를 대상으로 연산하는 메서드 정의를 포함하고 있습니다. # 클래스명으로 주로 PascalCase(UpperCamelCase)를 씁니다. class ClassNa..

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

[Python] 기초 정리(전역변수, 지역변수, 람다(lambda))

변수의 범위(variable scope) - 전역 변수(global variable) 우리가 함수를 배우기 전까진 제일 바깥 영역인 전역 범위(global scope)에서 변수를 선언하고 활용했었습니다. 전역 범위에서 선언했기 때문에 그 변수를 스크립트 전체에서 접근 할 수 있었는데, 그 변수를 전역 변수(global variable)이라고 부릅니다. global_variable = "this is global world" print(f"global_variable in global_scope=> {global_variable}") print(hex(id(global_variable))) def local_world() print(f"global_variable in local_world=> {globa..

일기

데이터엔지니어링 트랙 2주차 후기

했던 생각들.. 이번 주는 파이썬 기초를 쭉 배우고, 예제 문제를 푸는 식으로 진행됐다. 중요한 부분이나, 몰랐던 부분은 블로그에 쭉 업데이트 중이다. 진짜 너무 재밌다... 특히 메모리를 쓰는 방식이나, 리스트 같은 객체들이 메모리를 어떤 방식으로 사용하는지, 함수를 작성하는 과정에서 함수의 설명을 달아놓는 방법이라던지(doc), 함수의 인자를 어떻게 구성하는지에 대해서 배울 때는 수업시간이 짧다고 느낄 정도로 재밌게 들었다. 또 list comprehension의 속도 면에서의 장점이나, map 함수를 들었을 때는 과거에 개발했던 프로그램들을 생각해보면서, 내가 어떤 점들이 부족했는지 하나하나 채울 수 있었던 것 같다. 이 과정에서 가장 재밌게 했던 생각들은 빅데이터를 인덱스를 통해서 조작하는 과정이..

우상욱
데이터엔지니어스터디