Pandas 데이터프레임에서 마지막 행 데이터 삭제하기
Pandas 데이터프레임에서 마지막 행 데이터 삭제하기
Pandas에서 데이터프레임의 행을 삭제하는 가장 일반적인 방법은 drop()
함수를 사용하는 것입니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
# 마지막 행 삭제
last_row_index = df.index[-1] # 마지막 행의 인덱스 가져오기
df.drop(last_row_index, inplace=True) # drop() 함수를 사용하여 마지막 행 삭제
print(df) # 결과 출력
iloc[] 사용:
iloc[]
인덱싱을 사용하여 마지막 행을 슬라이싱하는 방법도 있습니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
# 마지막 행 삭제
df = df.iloc[:-1] # 마지막 행 제외한 모든 행 슬라이싱
print(df) # 결과 출력
loc 사용:
loc
인덱싱을 사용하여 마지막 행을 이름으로 삭제할 수도 있습니다.
import pandas as pd
# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}, index=['a', 'b', 'c', 'd'])
# 마지막 행 삭제
df = df.loc[:-1] # 마지막 행 이름 제외한 모든 행 선택
print(df) # 결과 출력
주의 사항:
drop()
함수를 사용할 때는inplace=True
매개변수를 사용하여 원본 데이터프레임을 수정하거나,copy()
함수를 사용하여 복사본을 만들어 작업하는 것이 좋습니다.- 데이터프레임의 인덱스가 숫자 시퀀스가 아닌 경우,
iloc
또는loc
인덱싱을 사용하는 것이 더 명확합니다.
예제 코드
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3, 4, 5], '이름': ['철수', '영희', '훈이', '민수', '지수'], '점수': [90, 85, 70, 65, 95]}
df = pd.DataFrame(data)
# 마지막 행 삭제
last_row_index = df.index[-1]
df.drop(last_row_index, inplace=True)
# 결과 출력
print(df)
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3, 4, 5], '이름': ['철수', '영희', '훈이', '민수', '지수'], '점수': [90, 85, 70, 65, 95]}
df = pd.DataFrame(data)
# 마지막 행 삭제
df = df.iloc[:-1]
# 결과 출력
print(df)
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3, 4, 5], '이름': ['철수', '영희', '훈이', '민수', '지수'], '점수': [90, 85, 70, 65, 95]}
df = pd.DataFrame(data, index=['a', 'b', 'c', 'd', 'e'])
# 마지막 행 삭제
df = df.loc[:-1]
# 결과 출력
print(df)
설명:
- 위 코드에서는 각 예시에서 데이터를 생성하고
DataFrame
으로 변환합니다. drop()
함수는last_row_index
를 사용하여 마지막 행을 삭제합니다.iloc[]
인덱싱은 마지막 행을 제외한 모든 행을 슬라이싱합니다.- 각 예시 코드를 실행하면 마지막 행이 삭제된
DataFrame
이 출력됩니다.
주의:
- 코드 실행 전에 Pandas 라이브러리가 설치되어 있는지 확인하세요.
- 필요에 따라 데이터 및 변수 이름을 변경하세요.
Pandas 데이터프레임에서 마지막 행 데이터 삭제: 대체 방법
tail() 함수 사용:
tail()
함수를 사용하여 마지막 n개 행을 제외하고 새로운 데이터프레임을 만들 수 있습니다.
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3, 4, 5], '이름': ['철수', '영희', '훈이', '민수', '지수'], '점수': [90, 85, 70, 65, 95]}
df = pd.DataFrame(data)
# 마지막 1행 제외한 새로운 데이터프레임 생성
new_df = df.tail(n=-1) # n=-1은 마지막 행 제외를 의미
# 결과 출력
print(new_df)
reverse() 함수와 iloc[] 사용:
데이터프레임을 반전시킨 후 iloc[]
인덱싱을 사용하여 마지막 행을 삭제할 수 있습니다.
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3, 4, 5], '이름': ['철수', '영희', '훈이', '민수', '지수'], '점수': [90, 85, 70, 65, 95]}
df = pd.DataFrame(data)
# 데이터프레임 반전
df = df.iloc[::-1]
# 마지막 행 삭제
df = df.iloc[:-1]
# 결과 출력
print(df)
assign() 함수 사용:
새로운 열을 만들고 마지막 행에 특정 값을 할당한 후 drop()
함수를 사용하여 마지막 행을 삭제할 수 있습니다.
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3, 4, 5], '이름': ['철수', '영희', '훈이', '민수', '지수'], '점수': [90, 85, 70, 65, 95]}
df = pd.DataFrame(data)
# 마지막 행에 특정 값 할당할 새로운 열 생성
df['마지막 행 확인'] = 1
# 마지막 행 삭제
df = df.drop(df[df['마지막 행 확인'] == 1].index, inplace=True)
# 결과 출력
print(df)
query() 함수 사용:
query()
함수를 사용하여 마지막 행을 제외하는 조건을 설정할 수 있습니다.
import pandas as pd
# 데이터 생성
data = {'번호': [1, 2, 3, 4, 5], '이름': ['철수', '영희', '훈이', '민수', '지수'], '점수': [90, 85, 70, 65, 95]}
df = pd.DataFrame(data)
# 마지막 행 제외하는 조건 설정
filtered_df = df.query('index != @df.index[-1]')
# 결과 출력
print(filtered_df)
- 위의 대체 방법들은 상황에 따라 다르게 작동할 수 있습니다. 데이터프레임의 특성과 원하는 결과에 따라 적절한 방법을 선택하십시오.
python pandas