akaSonny
[pandas] DataFrame 열&행 삭제 / 삽입 본문
0. 예제용 데이터프레임 만들기
df = pd.DataFrame({'A': [1, 2, 3],
'B': [1, 4, 9],
'C': [-1, -2, -3]})
A | B | C | |
0 | 1 | 2 | 3 |
1 | 1 | 4 | 9 |
2 | -1 | -2 | -3 |
1. 데이터프레임 열 삭제 / 삽입
1) 열 삭제: df.drop([column명]) 함수 사용
위 예시에서 만든 df에서 'C' 열을 빼고 싶다면, 다음과 같이 코드를 작성하면 된다.
df = df.drop(['C'], axis='columns')
# or
df = df.drop(['C'], axis=1)
이 때 주의해야 할 점은 axis 파라미터를 꼭 지정해줘야된다는 것!
axis를 쓰지않으면 행이 삭제되는것이 디폴트로 된다.
열을 삭제하고 싶으면 'columns' 혹은 1을 써주도록 하자!
2) 열 삽입: df[column명] = 데이터 사용 or df.assign() 함수 사용
- 나는 주로 첫 번째 방법을 쓰는데 찾아보니 두 번째 방법도 있어서 같이 정리
(1) df[column명] = 데이터
column명에는 새로 추가할 열의 이름 (str 형식), 데이터 부분에는 그냥 값 하나, 혹은 list, arrray를 써주면 된다.
데이터 부분에 값 하나를 적게 될 경우에는 그 값으로 열이 채워지게 된다. 초기값을 지정할 때 유용!
df['D'] = np.random.randint(10, size=3)
(2) df.assign(column명=데이터)
column명에는 새로 추가할 열의 이름 (*이 때는 str 형식이 아니다!!), 데이터 부분에는 그냥 값 하나, 혹은 list, arrray를 써주면 된다.
df = df.assign(D=np.random.randint(10, size=3))
2. 데이터프레임 행 삭제 / 삽입
1) 행 삭제: df.drop(인덱스 번호) 함수 사용
df = df.drop(1, axis=0)
열을 삭제했을 때는 axis=1로 설정을 했는데, 행을 삭제할 때는 axis=0으로 설정하기만 하면 된다.
2) 행 삽입
(1) append 이용하기
새로운 딕셔너리, 혹은 데이터프레임을 만들어서 기존 데이터프레임에 append 해주는 방법
new_df = {'A': 1, 'B': 10, 'C': 20, 'D': 15}
df = df.append(new_df, ignore_index=True)
그런데 append를 쓰니 다음과 같은 Warning 메세지가 발생한다.
FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
미래의 버전에서는 append가 사라질 예정이니 concat 함수를 대신 쓰라고 한다. 그래서 concat도 찾아봄
(2) concat 이용하기
새로운 데이터프레임을 만들어서 기존 데이터프레임과 합쳐주는 방법
append와 다르게 딕셔너리 형태는 안 되고 꼭 데이터프레임으로 만들어줘야한다.
new_df = {'A': 1, 'B': 10, 'C': 20, 'D': 15}
new_df = pd.DataFrame(new_df)
df = df.concat([df, new_df])
'Study (Programming) > Python' 카테고리의 다른 글
[Numpy] numpy의 random 모듈로 다양한 확률 분포 난수 생성하기 (0) | 2023.08.10 |
---|---|
[python/pandas] DataFrame groupby 이용하기 (0) | 2023.06.29 |
[python/pandas] DataFrame csv 파일 읽기, 인덱스 찾기 (0) | 2023.04.25 |
[파이썬/python] 반복문으로 변수 만들기 (globals) (1) | 2023.03.22 |
활성화 함수 (Activation Function) 정리 (0) | 2023.01.05 |