SQL에서는 insert, update,delete 등의 구문을 통해 데이터를 추가, 삭제 등이 가능했는데요
DataFrame에서는 어떻게 이러한 기능을 실행할 수 있는지 보겠습니다.
👌 컬럼 추가
1. DataFrame.assign(추가컬럼이름 = 값)
여기서 '값'에는 값을 나열한 리스트가 올 수도 있고, 조건문이 담긴 함수가 올 수도 있습니다.
예를 들어, 기존에 4행을 가진 DataFrame 이 있다면 기존의 길이에 맞춰서
df = df.assign(score=[70,80,90,100]) 을 추가할 수 있습니다.
혹은, 아래와 같이 lambda를 이용해서 새로운 컬럼을 추가할 수도 있습니다.
df
temp_c
Portland 17.0
Berkeley 25.0
df.assign(temp_f=lambda x: x.temp_c * 9 / 5 + 32)
temp_c temp_f
Portland 17.0 62.6
Berkeley 25.0 77.0
Source: pandas.pydata.org
2. DataFrame[ '컬럼명' ] = 값
이 방식은 assign을 굳이 쓰지 않고도 간편하게 값을 넣는 방법입니다.
df ['student_score'] = np.round(df['midtest']/2,1)
df['result'] = ['pass' if score>60 else 'fail' for score in df['report']]
👌 컬럼 삽입
1. DataFrame.insert(컬럼을 넣고 싶은 index, 칼럼이름, 값)
추가와 달리 어떤 특정 위치에 이 칼럼을 넣고 싶다!라고 한다면 삽입을 사용하게 되는데요
영어로 삽입을 뜻하는 insert를 사용해주면 됩니다
>>> df = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]})
>>> df
col1 col2
0 1 3
1 2 4
>>> df.insert(1, "newcol", [99, 99])
>>> df
col1 newcol col2
0 1 99 3
1 2 99 4
>>> df.insert(0, "col1", [100, 100], allow_duplicates=True)
>>> df
col1 col1 newcol col2
0 100 1 99 3
1 100 2 99 4
Source: Pandas.pydata.org
✔ 컬럼 삭제
이제 칼럼을 삭제하고 싶다면? 단일컬럼의 경우 pop, del 을 사용하고 다중컬럼은 drop을 사용하면 됩니다
1. 단일 컬럼 > df.pop('컬럼이름')
df.pop('orange')
df.pop('apple')
2. 단일 컬럼 > del df['컬럼이름')
del df['orange']
del df['apple']
3. 2개 이상의 다중 컬럼 > df.drop(없앨 컬럼명, axis=0 or 1)
가장 활용도가 높은 방법인 drop은 주로 데이터 분석을 할 때 불필요한 데이터들을 한번에 제외시키기 위해 사용합니다.
사용하는 방법은 이렇게
1) columns 명시를 통해 이름을 기재하는 법 2) 이름을 나열하고 axis로 행열인지 구분하는 법 2가지가 있습니다
df.drop(columns = ['a','b','c'])
df.drop(['a','b'], axis=1)
👌 행 추가
행을 추가하는 방법도 어렵지 않습니다!
열이 동일한 데이터프레임이 있을 때는 df.append()
new = df1.append(df2,ignore_index = True)
>>> df1
A B
x 1 2
y 3 4
>>> df.append(df2)
A B
x 1 2
y 3 4
x 5 6
y 7 8
>>> df.append(df2, ignore_index=True)
A B
0 1 2
1 3 4
2 5 6
3 7 8
'Data Science > Pandas, Numpy' 카테고리의 다른 글
DataFrame 열(Columns) 비교하기 (train,test 피처 차이 비교) (0) | 2022.10.12 |
---|---|
[ Pandas ] DataFrame, Series 함수 요약 정리 👀 (0) | 2022.10.06 |
[ Pandas ] Filter 함수 적용하기 (0) | 2022.10.04 |
[ Pandas ] Pandas.cut, qcut 개념 및 차이 정리 (0) | 2022.10.02 |
[ Pandas ] corr 상관관계수 반환 모듈 알아보기 (0) | 2022.10.01 |
댓글