본문 바로가기

Python/Pandas & numpy47

판다스 : 데이터 핸들링 예제 □ 타이타닉 데이터 핸들링 ○ 데이터불러오기 import numpy as np import seaborn as sns import pandas as pd titanic = sns.load_dataset('titanic') ○ 특정필드 선정 및 셋지정 new_titanic = titanic[['age','sex','class','fare','survived']] ○ 특정필드 그룹바이 *그룹바이만 한다면 해당 데이터는 객체로써 존재함 grouped = new_titanic.groupby('class') ○ age 평균보다 아래인 데이터 new_titanic[new_titanic['age'] < new_titanic['age'].mean()] ○ age의 표준편차를 구하고 해당 값으로 구성된 신규필드 생성 d.. 2024. 2. 9.
판다스 : groupby, 멀티인덱스 활용 조회 □ 라이브러리 및 데이터 불러오기 #라이브러리 불러오기 import numpy as np import seaborn as sns #데이터 불러오기 titanic = sns.load_dataset('titanic') □ 지정한 필드로 데이터셋 생성 #1. 지정한 필드로 데이터셋 생성 new_titanic = titanic[['age','sex','class','fare','survived']] □ 특정열 복수 지정 후 그룹바이 → 아래 코드와 같이 groupby만 진행한다면 데이터는 데이터프레임 또는 시리즈가 아닌 단순한 객체로써만 존재함 #2. class와 sex필드로 그룹바이 group_titanic = new_titanic.groupby(['class','sex']) print(type(group_t.. 2024. 2. 8.
판다스 : 데이터 필드 형변환 □ 필드정보 확인 #라이브러리 불러오기 import numpy as np import seaborn as sns #데이터 불러오기 tips = sns.load_dataset('tips') #컬럼정보확인 tips.info() □ 필드속성변환 : .astype('속성') tips['tip'] = tips['tip'].astype('str') #숫자형을 문자형으로 tips['day'] = tips['day'].astype('str') #범주형을 문자형으로 tips['size'] = tips['size'].astype('category') #숫자를 범주형으로 2024. 2. 8.
판다스 : .numeric_only, groupby/get_group □ numeric_only ○ True : True이면 필드들 중 숫자 데이터를 가진 필드들을 대상으로만 연산하겠다라는 의미 ○ False : False이면 필드들 중 숫자 데이터 가진 필드들을 대상으로 연산하지 않겠다라는 의미 #라이브러리 불러오기 import numpy as np import seaborn as sns #데이터 불러오기 tips = sns.load_dataset('tips') □ get_group ○ groupby 를 한 필드를 기준으로 get_group을 사용하면 ○ 그룹화한 필드는 인덱스로 적용되며, get_group을 활용해 인덱스의 값을 선택하여 해당 값에 맞는 데이터들을 뽑음 ○ 하나의 그룹만 선택할 수 있으며 복수의 인덱스를 동시에 지정하는 것은 불가함 #(1) 그룹바이 진.. 2024. 2. 8.
판다스 : .filter() 함수 □ filter 함수 ○ 데이터프레임 또는 시리즈에 대해 특정 조건을 적용하여 조건을 만족하는 요소만을 선택하는데 사용 ○ filter 함수는 주어진 함수 또는 조건을 각 그룹에 적용하고, 각 그룹에서 조건을 만족하는 데이터를 반환 ○ filter 함수는 그룹화된 객체에 대해 특정 조건을 적용하여 그 조건을 만족하는 그룹만을 선택하는 기능을 수행. 기본적으로, 조건을 만족하는 그룹은 그대로 유지되고, 만족하지 않는 그룹은 제외됨 □ 예제 ○ 데이터불러오기 #라이브러리 불러오기 import numpy as np import seaborn as sns #데이터 불러오기 tips = sns.load_dataset('tips') ○ size 필드의 데이터 분포현황 조회 tips['size'].value_coun.. 2024. 2. 8.
판다스 : .transform() □ 함수는 그룹별로 계산된 결과를 원본 데이터프레임에 다시 병합하는 역할수행 □ 주로 그룹별로 계산한 평균, 합 등의 값을 각 행에 적용하고자 할 때 사용 □ 예제 ○ 라이브러리 호출 및 데이터 불러오기 #라이브러리 호출 import pandas as pd import numpy as np #데이터 불러오기 df = pd.read_csv('C:/python/DataScience/Data/data/python_data/gapminder.tsv', delimiter='\t') ○ 함수정의 및 구룹화된 데이터 프레임에 transfom을 적용하여 값 조회 #함수정의 : 표준편차 def my_zscore(x): return ((x - x.mean()) / x.std()) #시리즈반환 : year필드로 그룹화 후 .. 2024. 2. 8.
판다스 : agg 심화 □ .agg() : 여러 개의 집계함수 한 번에 사용하기 □ 기본적으로 리스트, 딕셔너리 형태의 데이터를 agg함수에 담아 전달함 □ 형식 : 보통, ○ 단일 : 모든 열에 여러 함수를 매핑 : group 객체.agg([함수1, 함수2, 함수3, ...]) - 데이터 불러오기 import pandas as pd import numpy as np #데이터 불러오기 df = pd.read_csv('C:/python/DataScience/Data/data/python_data/gapminder.tsv', delimiter='\t') df.head() - 그룹화 후 agg함수를 활용하여 집계연산(집계연산은 numpy에서 제공하는 집계함수 사용) # 단일 : 집계 메서드를 리스트에 담아 전달-연도별 그룹화한 li.. 2024. 2. 8.
판다스 : 전처리 예제(feat. agg함수) □ 라이브러리 호출 및 데이터셋 불러오기(데이터는 seaborn 기본제공 데이터활용) import pandas as pd import seaborn as sns #셋 구축 titanic = sns.load_dataset('titanic') titanic □ 전처리 : sex 필드의 데이터를 1, 0으로 전환해보자 → male = 1, female → 0 #시리즈 생성 : sex필드 및 데이터 값 활용 raw_field = titanic['sex'] #반복문을 통해 반환된 값을 담을 빈리스트 지정 / 해당리스트를 필드 값으로 적용 sex_list = list() for v in raw_field: if v=='male': v = 1 else: v = 2 sex_list.append(v) # 반환된 데이터를.. 2024. 2. 8.
판다스 : .apply() 함수 예제 □ 데이터 프레임에 함수적용 등 다양한 방법으로 가공해보자 라이브러리 호출 from datetime import datetime import pandas as pd #현재년도 변수지정 current_year = datetime.now().year #데이터프레임 생성 encore= [{'name': 'A', 'birth': '1999-06-27', 'mid': 95, 'fin': 85}, {'name': 'B', 'birth': '1997-06-27', 'mid': 85, 'fin': 80}, {'name': 'C', 'birth': '1998-06-27', 'mid': 10, 'fin': 30}, {'name': 'D', 'birth': '2000-06-27', 'mid': 73, 'fin': 90}] .. 2024. 2. 8.