데이터프레임 변경
- 열 이름 변경
- columns 속성 변경 : 모든 열 이름 변경
tip.columns = [ '이름1', '이름2', '이름3']
2. rename()메소드 사용: 지정한 열 이름 변경
tip.rename(columns={'이름1' : '변경할 이름1', '이름2': '변경할 이름2'}, inplace=True)
- 열 추가
- 맨 뒤에 열 추가
tip['추가할 열'] = tip['기존에 있는열1'] + tip['기존에 있는열2']
2. 지정한 위치에 열 추가
tip.insert(1, '추가할 열', tip['기존 열'] / tip['기존 열']) -> 두번째 열에 삽입
- 열 삭제
drop()메소드를 사용해 열 삭제
- axis = 0: 행 삭제(기본 값!)
- axis = 1: 열 삭제
- inplace = False : 삭제한 것처럼 보여줘, True : 진짜 삭제해!
# 열 하나 삭제
tip.drop('삭제할 열', axis=1, inplace=True)
# 열 두개 삭제
tip.drop(['열1', '열2'], axis = 1, inplace = True)
- 값 변경
- 열 전체 값 변경
# tip['tip']의 모든 값을 0으로 바꾸기
tip['tip'] = 0
2. 조건에 의한 값 변경 .loc
# tip['tip'] 의 값이 10보다 작을 경우, 0으로 바꾸기
tip.loc[tip['tip'] < 10 , 'tip'] =0
3. 조건에 의한 값 변경 np.where(조건, 참, 거짓)
# tip['tip']의 값이 10보다 작을 경우 0, 아니면 1로 바꾸기
tip['tip'] = np.where(tip['tip'] < 10, 0, 1)
4. 범주형 값을 다른 값으로 변경할 때 .map()
# Male -> 1, Female -> 0
tip['sex'] = tip['sex'].map({'Male':1, 'Female':0})
5. pd.cut()
숫자형 변수 -> 범주형 변수
사례 : 나이 -> 나이대, 고객 구매액 -> 고객등급
# 크기로 3등분해서 등급 구하기
tip['tip_grp'] = pd.cut(tip['tip'], 3, labels =['c', 'd', 'e'])
* tip['tip]열에 대해서
* 3 : 균등 간격 3등분하고
* labels=['c', 'd', 'e'] : 값을 'c', 'd', 'e'로 바꾸시오.
group = pd.cut(data2["PctSalHike"], bins = [0, 13,18, 100], labels =['L', 'M', 'H'])
* right = True -> 오른쪽 범위 포함 ( 26< <=40)
* right = False -> 오른쪽 범위 포함 X
데이터프레임 결합
데이터 프레임 결합하는 두가지 방법
- pd.concat() -> 매핑 기준: 인덱스(행), 칼럼이름(열)
- pd.merge() -> 매핑 기준: 특정 칼럼(key)의 값 기준으로 결합
1. CONCAT
- 인덱스, 열이름 기준
- 데이터프레임 구조에 맞게 합치기
-> 방향있음
pd.concat([df1, df2], join = 'outer', axis=1)
- 방향 선택
- aixs = 0 : 세로(행)로 합치기 (기본값)
- axis = 1 : 가로(열)로 합치기
- 방법 선택
- join = 'outer' : 모든 행과 열 합치기 (기본값)
- join = 'inner' : 매핑되는 행과 열만 합치기
- axis =0 일 경우 : 같은열로 합쳐짐 !!
- axis = 1 일 경우 : 같은행으로 합쳐짐!!
pd.concat([pop01, pop02], join='outer', axis=1)
2. merge
- 특정 열의 값 기준
- 데이터 값 기준으로 합치기
pd.merge(df1, df2, on= '기준열', how= 'inner')
-> 방향X, 옆으로 붙힘
Pivot
: 집계된 데이터를 재구성할 수 있다.
dataframe.pivot( index, column, values)
'AI > DataAnalysis' 카테고리의 다른 글
데이터프레임의 데이터의 구성 확인하기 (0) | 2023.04.11 |
---|---|
결측치 처리 (0) | 2023.02.20 |
Python_웹 크롤링 (0) | 2023.02.20 |
Python_이변량분석 (0) | 2023.02.15 |
Python_시계열 데이터, 시각화라이브러리 (0) | 2023.02.09 |