본문 바로가기

Data handling/Pandas

[Pandas] DataFrame의 수정과 삭제

DataFrame의 칼럼 데이터 세트 생성과 수정

DataFrame에 새로운 칼럼을 추가하는 방법은 파이썬 딕셔너리와 유사합니다. 다음과 같은 형태로 추가해주시면 됩니다:

 

DataFrameName\['COL_NAME'] = Val

 

밑의 코드를 통해 한번 확인해봅시다!

data = { '학번' : ['1000', '1001', '1002', '1003', '1004', '1005'], 
        '이름' : [ 'Steve', 'James', 'Doyeon', 'Jane', 'Pilwoong', 'Tony'],
        '점수': [90.72, 78.09, 98.43, 64.19, 81.30, 99.14]}

df = pd.DataFrame(data)

# Dataframe에 새로운 칼럼 추가하기: 일괄적으로 0
df['키'] = 0
df['점수*10'] = df['점수']*10
print(df)

 

[OUTPUT]
> `학번      이름   점수  키  점수*10
0  1000     Steve  90.72  0   907.2
1  1001     James  78.09  0   780.9
2  1002    Doyeon  98.43  0   984.3
3  1003      Jane  64.19  0   641.9
4  1004  Pilwoong  81.30  0   813.0
5  1005      Tony  99.14  0   991.4

 

마찬가지로, 기존 칼럼의 값도 일괄적으로 변형할 수 있습니다.

# Dataframe 칼럼값 수정: 일괄적으로 1
df['키'] = 1
print(df)

 


DataFrame 데이터 삭제

DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False)

 

DataFrame에서 데이터의 삭제는 drop() 메서드는 사용합니다. 주의해서 보아야 할 파라미터는 labels, axis, inplace입니다.

 

DataFrame은 행(row) 방향인 axis 0, 열(column) 방향인 axis 1로 구성되어 있습니다. 따라서, drop() 메서드에 axis를 1로 설정하면 열 방향으로 데이터를 드랍하라는 의미입니다. labels에 버리고 싶은 칼럼의 이름을 쓰고, 축을 설정하면 됩니다.

 

다음은 예시 코드입니다:

# 우선 필요없는 칼럼을 추가해본다
data['AGE_0'] = 0
data['AGE_1'] = 1

# 그리고 없애버린다!
data.drop('AGE_0', axis=1)

 

그런데, 다시 data를 호출해보면 삭제했다고 생각한 'AGE_0' 칼럼이 여전히 남아있는 것을 확인할 수 있습니다.

이는 drop() 메서드의 inplace 인자의 기본값이 다음과 같기 때문이죠: inplace=False
inplace가 False값으로 되어있으면 자기 자신의 DataFrame 데이터는 삭제하지 않으며 삭제된 결과 DataFrame을 반환한다.

 

따라서, DataFrame 자체를 수정하고 싶다면 inplace=True로 설정해야 합니다.

 

DataFrame을 수정하는데 있어 또 다른 팁은 리스트의 형태로 삭제하고 싶은 칼럼들을 한 번에 넘겨줄 수 있다는 것입니다. inplace + list를 예시 코드로 보면 다음과 같습니다:

data.drop(['AGE_0', 'AGE_1'], axis=1, inplace=True)

 

ROW 방향도 똑같은 방식으로 삭제할 수 있습니다.


출처: https://privatedevelopnote.tistory.com/81 [개인노트]