본문 바로가기
IT,SW,Data,Cloud,코딩/Python

20230622 이런저런함수들

by 착실하게 2023. 6. 22.
반응형

T1-19

 

데이터프레임에 행별로 어떤 조건에 따라 어떤 내용을 적용할때 

이렇게 어플라이 가능함.

 

def calc(x):
    if x['Events'] == 1:
        x['Sales_new'] = x['Sales'] * 0.8 
    else:
        x['Sales_new'] = x['Sales'] 
    return x 


df = df.apply(lambda x: calc(x),axis=1)

 

T1-20

판다스 merge 함수. 

df = pd.merge(left = b1 , right = b3, how = "left", on = "f4")

how 에 넣을 수 있는 건 ‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’ 디폴트는 inner 

 

T1-21

이상치 제거 

# age 이상치 (음수(0포함) 제거
df = df[~(df['age'] <= 0)]

동일한 개수로 나이 순으로 3그룹으로 나눈 뒤 

df['range'] = pd.qcut(df['age'], q=3, labels=['group1','group2','group3'])

 

같은 길이로 구간 나누기 pd.cut 

같은 갯수로 구간 나누기 pd.qcut 

 

cut: 데이터가 있으면 그 데이터의 최소-최대값으로 구간을 나눠서, 데이터를 집어넣어줌.

qcut: 데이터 갯수가 구간별 동일하게 구간을 나누어줌

 

import pandas as pd 
import numpy as np 

# cut: 구간의 크기가 동일함. 
# 구간에 속한 데이터 갯수는 다름. 
# 개수를 넣으면 구간의 개수 설정 가능. 
# 배열 형태 넣으면 지정한 구간으로 넣어줌. 
# labels 넣으면 라벨 붙여줌 

np.random.seed(122)
normal = np.random.normal(size=10000)
print(normal)
bins = pd.cut(normal,5)
# print(bins.categories)
print(bins.describe())

np.random.seed(122)
mj = np.random.randint(1,100,50)
bins = pd.cut(mj,5)
print(bins.describe())

np.random.seed(122)
ages = np.random.randint(6,45,50)
ranges = [5,12,18,35,50]
age_bins = pd.cut(ages,ranges)
print(age_bins.describe())

labels = ['어린이','청소년','청년','중년']

age_bins = pd.cut(ages,ranges,labels=labels)
print(age_bins.describe())

########################################
# qcut 같은 갯수로 구간 나누기
same_count_bins = pd.qcut(normal,5)
print(same_count_bins.describe())

문자열

문자열.count('특정문자') 
: 문자열에 특정문자 몇개있는지

문자열.find('특정문자')
: 문자열에 특정문자의 위치

'특정문자'.join( 문자열 ) 
: 문자열 사이마다 특정문자 삽입된 문자열

','.join("apple")
a,p,p,l,e

 

대문자,소문자 바꾸기 

"apple".upper()
"APPLE".lower()

 

문자열공백제거 

rstrip() 문자열 오른쪽의 공백제거 
lstrip() 문자열 왼쪽의 공백 제거 
strip() 문자열 양쪽에 있는 공백 제거

 

추가로 이것저것 

리스트 = [1,2,3,4,5] 

리스트.index(특정요소)
특정요소의 값이 리스트에서 몇 번째에 위치하고 있는지.

리스트.remove(x)
첫번째로 등장하는 x값 제거. 요소제거. 


리스트.insert(x,y)
x 위치에 y를  삽입

리스트.pop(x)
x 위치의 값을 추출하고 제거. 
비복원추출기법.

리스트.count(x)
리스트에 존재하는 x값의 개수를 계산한다. 
#문자열도 동일한 원리로 사용가능

딕셔너리.keys()
딕셔너리.items()
딕셔너리.get(x)
x의 키에 해당하는 값 확인 
딕셔너리.get(x,y)
x의 키가 존재하지 않을 때 y값을 반환

 

 

 

T1-22

 

판다스의 resample 함수사용

 

참고할만한 링크 

https://wikidocs.net/158101

 

16-08 리샘플링 (resample)

####DataFrame.resample(rule, axis=0, closed=None, label=None, convention='start', kind=None, loffse…

wikidocs.net

 

T1-22 리샘플링 쪽 부터 복습 시작

그리고 책은 122~ 

반응형

댓글