반전공자

[Pandas] Series_method 본문

데청캠 연세대

[Pandas] Series_method

하연01 2021. 7. 3. 23:46

▣ 시리즈에 활용할 수 있는 method 

describe() 

: 여러 통계정보를 제공 (count, mean, std, min, ... ) 

sample.describe()

 

 

 

통계함수 : max(), min(), mean()

sample.max() 
sample.min()
sample.mean()

 

 

add_prefix()

인덱스명 앞에 추가하기 

sample.add_prefix('big-')

 

 

value_counts() 

sample.value_counts()

 

# 갯수 내림차순, 오름차순 정렬 

sample.value_counts(ascending=False)

False : 내림차순 정렬 

True : 오름차순 정렬 

 

cf) 만약 그냥 True만 입력한다면?

sample.value_counts(True)

value_counts()의 첫번째 인자는 normalize이기 때문에 바로 True를 입력하면 첫번째 인자에 할당되어 값들이 정규화되어 나온다. 

 

 

 

 

 

add() 

: 데이터 각각에 값 더하기 

sample.add(5)

모든 값에 모두 5가 더해져 나온다. 

 

 

 

cf) 만약 원하는 값에만 수를 더하고 싶다면? 

sample[:5].add(5)

첫번째 부터 다섯개 값에 5를 더한다. 

 

 

 

 앞에 5개 데이터에 5를 더하고, 나머지 5개의 데이터에 10을 더한다. 

sample.add([5, 5, 5, 5, 5, 10, 10, 10, 10, 10])

 

 

append(series) 

: 인자로 받은 시리즈를 기존 시리즈 뒤에 이어붙여서 하나의 시리즈로 만든다. 

sample.append(Series(50, index=['k'])

마지막줄에 k 라는 인덱스로 50이라는 값이 추가되었음을 알 수 있다. 

 

 

isin(val_list) 

: 시리즈에 있는 각 데이터들이 val_list에 포함되어있는지에 대한 여부 

* 꼭 리스트에 넣어야 한다. 

sample.isin([90])

해당 데이터가 존재하는 곳에는 True라고 반환한다. 

 

♩ sample 데이터 내에 80이 있는지 확인. 

sample.isin([80])

물론 이렇게 할 수 있지만, 딱 80 하나의 값이 있냐 없냐! 에 대한 여부만 알려줘! 라고 한다면 어떻게 해야할까? 

80 in sample.values

아주 간단하게 True, False 하나로만 결과가 반환되기 때문에 만약 많은 양의 데이터가 있다면, 이 방법이 훨씬 수월할 것이다. 

 

 

♩ 인덱스 'h'가 존재하는지 Ture, False로 출력 

'h' in sample.index

 

 

isin()을 쓸 수도 있다. 

sample.index.isin(['h'])

 

 

 

 

 

 

apply(func) 

: 시리즈 값에 func 함수를 적용한다. / 원래 시리즈에서 제공하지 않는 함수를 내가 정의해서 적용하고 싶은 경우

def get_grade(val):
    if val >=80:
        return 'Good'
    else:
        return 'Bad'
sample.apply(get_grade)

시리즈의 각 모든 값에 함수를 적용해서 결과를 반환한다. 

 

cf) 익명함수 lambda 

sample.apply(lambda val: 'Good' if val >= 80 else 'Bad')

결과는 함수를 정의해서 적용한 결과와 같다. 

 

* 익명함수 lambda는 메모리를 잡아먹지 않는다. 

* 한번만 사용할 함수를 지금만 사용하고 저장하고 싶지 않을 때 lambda를 사용한다. 

 

 

 

'데청캠 연세대' 카테고리의 다른 글

[Pandas] DataFrame  (0) 2021.07.04
[Pandas] Series 실습  (0) 2021.07.04
[Pandas] Series_indexing  (0) 2021.07.04
[Pandas] Series_attribute  (0) 2021.07.03
[ Pandas ] Series  (0) 2021.07.03