안녕하세요~ 꽁냥이에요.
이번 포스팅은 Pandas에서 새로운 행 데이터를 데이터프레임에 추가, 삭제하는 방법에 대해서 알아보려고 합니다.
1. Pandas 행 추가하기
먼저 예제용 데이터를 만들어줄게요.
import pandas as pd
data = {
'이름' : ['꽁냥이','옹냥이'],
'나이' : [22, 16],
'키' : [183, 181]
}
df = pd.DataFrame(data) ## 데이터
꽁냥이는 아래의 데이터를 추가할 거예요.
아이린, 26, 160
Pandas에서는 행 삽입하는 여러가지 기능을 제공하고 있습니다. 여기서는 위의 행 데이터를 삽입하는 방법 3가지를 소개합니다.
concat 이용하기
append 이용하기
loc 이용하기
1. concat 이용하기
concat을 이용하기 위해서는 새로운 행 데이터를 데이터프레임으로 만들어준 후 concat을 통해서 합쳐주어야 합니다.
## concat 이용하기
new_data = {
'이름' : ['아이린'],
'나이' : [26],
'키' : [160]
}
new_df = pd.DataFrame(new_data)
df = pd.concat([df,new_df])
2. append 이용하기
append를 이용하면 행데이터를 칼럼 이름은 키, 데이터를 값으로 하는 딕셔너리로 만들어주기만 하면 됩니다. concat을 이용했다면 데이터프레임으로 만들어줘야하지만 append를 이용한다면 데이터프레임으로 만들지 않아도 됩니다.
## append 이용하기
new_data = {
'이름' : '아이린',
'나이' : 26,
'키' : 160
}
df = df.append(new_data, ignore_index=True)
3. loc 이용하기
새로운 행 데이터를 리스트로만 만들어주면 loc을 이용하여 삽입할 수 있습니다. 이때 loc에 들어가는 인덱스는 맨 마지막에 대응하는 인덱스로 설정합니다.
## loc 이용하기
new_data = ['아이린',26,160]
df.loc[len(df)] = ['아이린',26,160]
여기서 잠깐!!
지금까지는 데이터 맨 마지막행에 행을 삽입했는데 중간에 삽입하기 위해서는 어떻게 해야 할까요?
꽁냥이는 첫 번째 행과 두 번째 행 사이에 새로운 데이터를 삽입할 거예요.
## 원하는 위치에 넣기
new_data = {
'이름' : '아이린',
'나이' : 26,
'키' : 160
}
idx = 1 ## 원하는 인덱스
temp1 = df[df.index < idx]
temp2 = df[df.index >= idx]
df = temp1.append(new_data,ignore_index=True).append(temp2, ignore_index=True)
line 8
새로운 데이터는 두 번째 행에 들어가야 하므로 이에 대응하는 인덱스를 설정합니다.
line 10~11
새로운 데이터가 들어가는 인덱스를 기준으로 데이터를 나눕니다.
line 12
append를 사용하여 기준 인덱스보다 앞에 있는 데이터, 새로운 데이터, 나머지 데이터를 차례대로 합쳐주면 됩니다.
2. Pandas 행 삭제하기
이번에는 행을 삭제해 보겠습니다. 예제 데이터를 만들어줄게요.
data = {
'이름' : ['꽁냥이','옹냥이', '아이린'],
'나이' : [22, 16, 26],
'키' : [183, 181, 160]
}
df = pd.DataFrame(data) ## 데이터
행 삭제는 인덱스를 이용한 방법과 특정 칼럼의 값을 이용하는 방법을 소개하겠습니다.
1. 인덱스를 이용한 방법
데이터프레임에는 각 행마다 고유한 인덱스가 있습니다. drop함수에 삭제할 인덱스를 이용하여 행을 삭제할 수 있습니다. 이 때 axis는 0으로 지정해주세요. 꽁냥이는 인덱스가 1인 행을 삭제할거예요.
df = df.drop(1,axis=0)
2. 특정 칼럼의 값을 이용한 방법
이번에는 이름이 '옹냥이'인 행을 삭제해보도록하겠습니다. query를 이용하여 이름이 옹냥이가 아닌 데이터들만 추출하면 됩니다.
df = df.query('이름 != "옹냥이"')
이번 포스팅에서는 데이터프레임에 행 데이터를 추가하고 삭제하는 방법에 대해서 알아보았습니다. 궁금하신 점 있으면 댓글로 남겨주세요~
지금까지 꽁냥이의 글 읽어주셔서 감사합니다.
'데이터 분석 > 데이터 전처리' 카테고리의 다른 글
[Pandas] 14. 데이터 그룹별로 집계하기 (5) | 2020.11.24 |
---|---|
[Pandas] 13. 날짜를 이용하여 데이터 조회하기 (0) | 2020.11.21 |
[Pandas] 11. 데이터프레임 셀 스타일 변경하기 (7) | 2020.09.27 |
[Pandas] 10. 열/칼럼 이름 바꾸기 (0) | 2020.09.14 |
[Pandas] 9. 데이터 결합(Join)하기 (0) | 2020.09.13 |
댓글