본문 바로가기
Programming/Python

[Pandas] col, row 조작 및 변경

col  조작 및 변경

df['no'] = range(1,len(df)+1)     # 학생 번호 추가하기 (1부터 시작하여 1씩 증가)

df['sum'] = df['kor']+df['eng']+df['math']     # sum 추가

df['no']  = df['no']+99  # 학생 번호 수정하기 (100부터 시작하여 1씩 증가)

df.drop(columns=['no','sum'], inplace=True)  # 위에서 만든 no, sum 컬럼 삭제하기

#'이름','국어','영어','수학' 로 영어에서 한글로 바꾸기 (단 항목 수 제대로 맞출 것!)
df.columns=['이름','국어','영어','수학']

# 이름-->성명  (특정 컬럼명 바꾸기. 여러개인 경우 dict 여러개 나열)
# Ex) 데이터프레임.rename(columns={'현재컬럼명1':'바꿀컬럼명1','현재컬럼명2':'바꿀컬럼명2',...})
df = df.rename(columns={'이름':'성명'})

 

 

row 조작 및 변경

 

df.append(추가할데이터, ignore_index=True)    <- 추가할 데이터는 dict형태. 끝 행에 추가됨. 새 인덱스 생성됨

Ex)

new_value = {'name':'Python','kor':80,'eng':90,'math':100}
df = df.append(new_value,  ignore_index=True)

 

index 지정으로 추가 및 수정하기. (이미 존재하는 것은 수정, 없던 것은 끝에 추가)

df.loc[인덱스]

Ex)

df.loc[30] = ['ccc',60,70,80]  # 인덱스 30    이미 있던거를 이렇게 수정

df.loc[34] = ['bbb',80,90,100]  # 인덱스 34에 추가  (없던 것이 새로 생성)
 
df.loc[35] = ['aaa',70,80,90]  # 인덱스 35에 추가  (없던 것이 새로 생성)

 

df.drop(index=[삭제할 리스트], inplace=True)      <- 행 삭제하기

Ex)

df.drop(index=[30,34,35], inplace=True)   # 위에서 조작한 30,34,35 3개 모두 삭제

*** inplace=True  <- 실제로 반영할 지 여부. 생략시 출력용으로만 임시로 반영

 

인덱스 변경하기:  df.index = [인덱스명리스트]        <- 단, 리스트 항목 수는 인덱스 수와 동일해야함!

df.index = range(100,3100,100)   # 전체 한번에 변경

# 100-->'a', 200-->'b' 로 특정 인덱스만 변경. 개수는 dict형태로 추가.
df.rename(index={100:'a',200:'b'}, inplace=True)

df.rename(index or columns = {dict자료}, inplace=True or False)   <- 이 구조에 대해 알아두자!

 

 

728x90
반응형

'Programming > Python' 카테고리의 다른 글

[Pandas] Null(결측치) 다루기  (2) 2023.08.30
[Pandas] Function application  (0) 2023.08.30
[Pandas] 문제풀이 2  (0) 2023.08.30
[Pandas] Matplotlib.pyplot로 그래프 그리기 (기본)  (0) 2023.08.29
[Pandas] 문제풀이 1  (0) 2023.08.29