목록pandas (25)
개발은 처음이라 개발새발
판다스를 활용하면서 데이터셋을 받아서 쓰기도 하지만 간단한 에제를 만들어 활용할 때 매번 컬럼과 인덱스를 만들어 넣는 것이 참 번거롭습니다. 이럴 때 무작위로 데이터를 제공해주는 라이브러리를 활용하면 좋은데요. Faker 라이브러리를 활용하면 무작위로 데이터를 만들 수 있습니다. #Faker 라이브러리 설치 pip install Faker from faker import Faker fake = Faker() names = [fake.name() for _ in range(10)] first_names = [fake.first_name_female() for _ in range(10)] jobs = [fake.job() for _ in range(10)] print(names) print(first_nam..
Series와 DataFrame에서는 공통적으로 인덱싱이 활용됩니다. 인덱싱이란 index를 갖는 자료에서 index를 활용하여 값을 추출해내는 것을 뜻합니다. 이 인덱싱을 도와주는 역할을 하는 것들을 Indexer라고 합니다. 그렇다면 Indexer에는 어떤 종류가 있는지 보겠습니다. #Indexer의 종류 - [] (Braket Indexing) 라벨(인덱스 이름)이나 정수 인덱스를 이용하여 데이터에 접근 또는 슬라이싱 가능 ex> series['label'], series[0] - .loc[] (Label-based Indexing) 라벨(인덱스 이름)을 사용하여 데이터에 접근하거나 조작하는 인덱서 - .iloc[] (Integer-based Indexing) 정수 인덱스를 사용하여 데이터에 접근하..
근래 여러 업무가 겹치면서 포스팅 하는 것도 많이 힘드네요. 업무가 겹치다 보니 포스팅 뿐만 아니라 컬럼명을 외우기도 벅차는데요. 주로 하는 일이 본격적으로 게임을 서비스 하기 위해 데이터 베이스를 구축하기 전 게임에 필요한 스탯의 성장과 인게임 결과에 따른 수치 변동 시뮬레이션을 하는 것이 업이다 보니 긴 컬럼명을 간단하게 변경해 외우기 쉽도록 작업을 하는 경우가 많습니다. 뭐든지 방법에는 처음에 알기 쉽지만 손이 많이 가는 방법 1과 공부를 한다면 몹시도 간단한 방법 2가 존재하는데요. 컬럼명 변경도 마찬가지입니다. 일단 예제를 하나 만들어보겠습니다. import pandas as pd dict_data = {'선수A':[18,3,21,8.13], '김덕배':[3,9,12,7.93], '필포든': [..
https://data-so-hard.tistory.com/50 merge()함수로 데이터프레임 병합하기 [python/pandas] 안녕하세요. 2주만의 포스팅을 하게 됐습니다. 오늘 포스팅할 것은 concat()함수에 이어 merge()함수로 데이터프레임을 병합하는 것입니다. merge()함수는 SQL의 join과 비슷한 방식으로 어떤 기준에 의 data-so-hard.tistory.com 지난 1편에 이어서 merge 함수의 옵션에 대해 알아보겠습니다. 이번 시간에는 'how=' 옵션에 대해 알아보려고 하는데요. how 옵션을 통해서는 왼쪽과 오른쪽을 기준으로 데이터 값을 병합합니다. 또한 left_on과 right_on 옵션을 사용하면 좌우 데이터프레임의 키값을 다르게 지정할 수 있습니다. 우선 ..
안녕하세요. 2주만의 포스팅을 하게 됐습니다. 오늘 포스팅할 것은 concat()함수에 이어 merge()함수로 데이터프레임을 병합하는 것입니다. merge()함수는 SQL의 join과 비슷한 방식으로 어떤 기준에 의해 두 데이터프레임을 병합하는 방법입니다. 이때 기준이 되는 열이나 인덱스를 key라고 부릅니다. 이때 키가 되는 열이나 인덱스는 반드시 합치려는 두 데이터프레임에 모두 존재해야 합니다. 그렇다면 예제를 통해 코딩을 진행해보겠습니다. import pandas as pd df1= pd.read_excel('./stock price.xlsx') df2= pd.read_excel('./stock valuation.xlsx') print(df1) print('\n') print(df2) print(..
데이터프레임은 구성의 형태와 속성이 균형하담녀 행 또는 열 중에 어느 한 방향으로 이어 붙여도 데이터의 일관성을 유지할 수 있습니다. 오늘은 기존 데이터프레임의 형태를 유지하면서 이어 붙이는 concat() 함수에 대해 알아보겠습니다. 우선 예제를 만들어 보겠습니다. import pandas as pd df1 = pd.DataFrame({'a':['a0','a1','a2','a3'], 'b':['b0','b1','b2','b3'], 'c':['c0','c1','c2','c3']}, index=[0,1,2,3]) df2 = pd.DataFrame({'a':['a2','a3','a4','a5'], 'b':['b2','b3','b4','b5'], 'c':['c2','c3','c4','c5'], 'd':['d2..
하나의 열이 여러가지 정보를 가지고 잇을 때 각 정보를 서로 분리해서 사용하는 경우가 있는데요. 그중에서 대표적인 것이 날짜 정보겠죠. 예를 들어 날짜라는 컬럼 안에 "2022-08-20" 이라는 정보가 담겨 있다면 날짜라는 컬럼에 연도, 월, 일 총 3가지의 정보가 담겨 있는 것입니다. 이름 같은 경우도 성과 이름을 모두 담고 있기 때문에 좀 더 데이터를 세분화해 다루기 위해서는 이를 분리해 구분하는 것이 좋습니다. 이번 시간에는 주가데이터 예제를 통해서 코딩을 진행해보겠습니다. import pandas as pd #데이터셋 가져오기 df = pd.read_excel('./주가데이터.xlsx') print(df.head(),'\n') print(df.dtypes,'\n') #연,월,일 데이터 분리하기 ..
데이터프레임의 열에 isin()매소드를 적용하면 특정 값을 가진 행들을 따로 추출할 수 있습니다. 이때 isin() 매소드 안에는 데이터프레임에서 추출하려는 값들을 리스트로 해서 입력하면 됩니다. 그렇다면 바로 예제를 통해 풀어보도록 하겠습니다. 먼저 비교를 위해 boolean indexing을 먼저 적어보도록 하겠습니다. import seaborn as sns titanic = sns.load_dataset('titanic') #함께 탑승한 형제 또는 배우자의 수가 3, 4, 5인 승객만 추출 - 불린 인덱싱 mask3 = titanic['sibsp'] == 3 mask4 = titanic['sibsp'] == 4 mask5 = titanic['sibsp'] == 5 df_boolean = titani..
파이썬을 통해서도 엑셀과 같이 필터링이 가능한대요. 오늘 다뤄볼 것은 특정 조건식을 작성해 이를 만족하는 값들만 뽑아낼 수 있는 불린 인덱싱(boolean indexing)에 대해 알아보겠습니다. 불린(boolean)은 시리즈 객체에 어떤 조건식을 적용하면 참(True), 거짓(False)인지를 판별하는 것인데요. 이를 토대로 참인 값들만 필터링 하는 것이 불린 인덱싱입니다. 오늘도 seaborn의 'titanic'예제를 활용해 불린 인덱싱을 하는 과정을 살펴보겠습니다. import seaborn as sns titanic = sns.load_dataset('titanic') # 10대 승객 찾기 mask1 = (titanic['age'] >= 10) & (titanic['age'] = 60 ) df_u..
안녕하세요, 이번에는 판다스에서 열의 순서를 변경하는 것에 대해 알아보도록하겠습니다. 이번 시간 예제는 seaborn에서 제공하는 타이타닉 데이터를 가지고 진행하겠습니다. 우선적으로 컬럼을 순서를 변경하는 데 있어 필요한 것은 컬럼의 리스트를 만드는 것입니다.그렇다면 컬럼 리스트를 만드는 것까지 코딩을 진행해보겠습니다. import seaborn as sns titanic = sns.load_dataset('titanic') df = titanic.loc[0:4,'survived':'age'] print(df,'\n') #컬럼 리스트 만들기 columns = list(df.columns) print(columns,'\n') survived pclass sex age 0 0 3 male 22.0 1 1 1..