본문 바로가기

Pandas

DataFrame - 셀의 값을 변경하기, 행과 열 추가하기 & 전치하기


import pandas as pd

exam_data = {'이름' : ['서준', '우현', '인아', '영철'],
             '수학' : [90, 80, 70, 30],
             '영어' : [98, 89, 95, 22],
             '음악' : [85, 95, 100, 55],
             '체육' : [100, 90, 90, 77]}

df = pd.DataFrame(exam_data)
print(df, "\n")

# 국어 컬럼을 추가한다
df['국어'] = 80
print(df, "\n")

# 새로운 행을 추가한다
df.loc[4] = 0
print(df, "\n")

# 값을 지정해서 행을 추가한다
df.loc[5] = ['동규', 90, 80, 60, 70, 50]
print(df, "\n")

# 행추가 - 기존 행 복사
df.loc['영철행 복사'] = df.loc[3]
print(df, "\n")

#이름 열을 인덱스로 지정
df.set_index('이름', inplace=True)
print(df, "\n")

# 특정 셀의 값을 변경
df.iloc[0][3] = 99
print(df, "\n")

df.loc['서준']['체육'] = 11
print(df, "\n")

df.loc['서준', '체육'] = 22
print(df, "\n")

# 여러개의 값을 한꺼번에 변경하기
df.loc['서준', ['음악', '체육']] = 50
print(df, "\n")

df.loc['서준', ['음악', '체육']] = [60, 61]
print(df, "\n")

# 행, 열 바꾸기

print(df, "\n")
df = df.transpose()
print(df, "\n")

# 다시 되돌리기, transpose() 를 해도 좋고 .T 클랙스 속성을 이용해 된다 
df = df.T
print(df, "\n")

 

transpose() 기능을 편리하게 사용할 것 같다. 엑셀에서는 이 기능이 있어서 잘 썼었는데, 넘버스에서는 없어서 불편했었다. 엑셀을 꼭 썼어야 하는 이유 하나가 사라졌다. ^^ 


Where there is a will there is a way