728x90
Pandas에서 함수를 이용하여 데이터를 변경해보자.
1. lambda :
- lambda 인자 : 표현식 으로 사용되며, 함수를 한 줄로 사용할 수 있는 기능을 가지고 있다.
def f(x , y):
return x + y
f(1,4) # 5
f = lambda x,y: x + y
f(1,4) # 5
-> 위의 f 함수를 lambda를 통해 구현할 수 있다.
# 제곱
(lambda x: x ** 2)(3) # 9
-> 이와 같이 한 줄로도 사용할 수 있다.
2. map( )
- 함수와 리스트를 인자로 받아 리스트의 모든 원소들에 함수를 적용시킨 후, 그 결과를 새로운 리스트에 담아준다.
ex = [1,2,3,4,5]
f = lambda x: x ** 2
list(map(f, ex)) # [1, 4, 9, 16, 25]
-> ex 리스트 원소에 모두 f 함수를 적용시켜 리스트로 반환한다.
import pandas as pd
import numpy as np
from pandas import Series
s1 = Series(np.arange(10))
s1
z = {1:'A', 2:'B', 3:'C'}
s1.map(z)
![]() |
![]() |
-> 0부터 9까지의 원소를 담는 시리즈 s1을 생성한 후, { 1 : 'A', 2 : 'B', 3 : 'C' } 형태의 dict z를 생성하여
시리즈 s1에 map 함수를 사용하여 dict를 적용시키면 위와 같이 데이터를 변경할 수 있다.
3. 데이터 변경해보기
df = pd.read_csv("wages.csv")
df.head()
-> 위 데이터의 성별(sex)을 0과 1의 값으로 변경해보자.
1. df.sex.unique( ) 를 통해 중복 없는 컬럼의 값을 확인한다.
df.sex.unique()
2-1. map( ) 을 사용하여 sex컬럼 데이터를 숫자로 변경한다.
df["sex"] = df.sex.map({'male':0, 'female':1})
df
2-2. replace( ) 를 사용하여 위와 같이 데이터를 변경할 수 있다. (꼭 inplace=True를 해야 원본 데이터가 변경된다! )
df.sex.replace(['male','female'], [0,1], inplace=True)
df
4. apply( )
- 시리즈 전체(컬럼)에 해당 함수를 적용하며 컬럼의 통계 자료를 낼 때 유용하게 사용할 수 있다.
df_info = df[["earn", "height","age"]]
df_info.head()
ex1.
f = lambda x : x.max() - x.min()
df_info.apply(f)
ex2.
df_info.apply(sum)
5. applymap( )
- 데이터프레임 전체에 해당 함수를 적용하며 컬럼의 통계 자료를 낼 때 유용하게 사용할 수 있다.
# ex) 전체 데이터프레임에 - 적용
f = lambda x : -x
df_info.applymap(f).head(5)
6. 기타 함수
6-1. describe( ) : 전체 데이터의 요약 정보를 보여준다.
df.describe()
6-2. unique( ) : 데이터의 유일한 값을 반환한다.
df.race.unique()
6-3. 카테고리형 데이터 몇 개 인지 모를 때 라벨링 하기 ( dict )
res = np.array(dict(enumerate(df["race"].unique())))
res
6-4. 카테고리형 데이터 몇 개 인지 모를때 라벨링 하기 ( list )
value = list(map(int, np.array(list(enumerate(df["race"].unique())))[:, 0].tolist()))
key = np.array(list(enumerate(df["race"].unique())), dtype=str)[:, 1].tolist()
value, key
[AI Tech Pre-course] 인공지능(AI) 기초 다지기
부스트코스 무료 강의
www.boostcourse.org
사용한 데이터 :
728x90
'Python > Pandas' 카테고리의 다른 글
[Pandas 기초] Pandas의 Select, Drop (2) | 2021.06.15 |
---|---|
[Pandas 기초] Pandas의 DataFrame (2) | 2021.06.12 |
[Pandas 기초] Pandas 라이브러리 (2) | 2021.06.11 |
댓글
최근에 올라온 글
TAG
- VGGNet
- OpenCV
- db
- Pandas
- 자료구조
- slqd
- 머신러닝
- MongoDB
- 부스트코스
- 기계학습
- 인공지능
- Ai
- Scikit
- SQLD
- numpy
- 프로그래머스
- 경사하강법
- Programmers
- algorithm
- Python
- 딥러닝
- Min()
- 주니온
- sklearn
- SQL
- 알고리즘
- Project
- Max()
- 파이썬
- cnn
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Total
- Today
- Yesterday
250x250