파이썬에서 자기란 무엇인가: 실제 사례
파이썬에서 자기란 무엇인가: 실제 사례
Pandas는 데이터 조작 및 분석에 널리 사용되는 Python 라이브러리입니다. Pandas가 제공할 수 있는 한 가지 필수 기능은 데이터 세트의 구조를 수정하는 기능입니다. 특히 DataFrame에서 인덱스를 삭제하는 것은 데이터 세트로 작업할 때 중요한 작업입니다. 데이터에서 원하지 않는 행이나 열을 제거할 수 있습니다.
pandas로 색인을 삭제하려면 .drop() 및 .reset_index() 메서드를 사용할 수 있습니다. .drop() 메서드를 사용하면 특정 행이나 열을 제거할 수 있습니다. 반면에 .reset_index() 메서드를 사용하면 인덱스를 제거하고 기본 RangeIndex로 재설정할 수 있습니다.
이 기사에서는 이러한 방법을 사용하여 pandas DataFrames에서 인덱스를 삭제하는 방법에 대해 설명합니다. 다양한 예를 통해 다양한 분석 요구에 맞게 데이터 세트의 구조를 효과적으로 조작하는 방법을 보여줍니다. 이 예제를 통해 pandas 라이브러리를 데이터 조작에 활용하는 방법을 더 깊이 이해할 수 있습니다.
그것에 들어가자!
목차
Pandas Drop Index 이해하기
pandas를 사용하여 인덱스를 삭제하기 전에 pandas DataFrame이 무엇인지 이해하는 것이 매우 중요합니다. 또한 pandas DataFrame의 인덱스 및 열 개념도 잘 알고 있어야 합니다.
이 섹션에서는 pandas DataFrame, 인덱스 및 열의 기본 사항을 다룹니다. 그런 다음 pandas를 사용하여 인덱스를 삭제하는 예를 살펴보겠습니다.
1. 판다스 데이터프레임이란?
Pandas는 고성능 데이터 조작 및 분석 도구를 제공하는 오픈 소스 Python 라이브러리입니다. 핵심 데이터 구조 중 하나는 DataFrame 입니다 .
Pandas DataFrame은 레이블이 지정된 축(행 및 열)이 있는 2차원 데이터 구조입니다. DataFrame을 SQL 테이블 또는 Excel 스프레드시트의 Python 개체 표현으로 생각할 수 있습니다.
다음은 일반적인 pandas DataFrame입니다.
2. 인덱스와 열이란 무엇입니까?
pandas DataFrame에서 인덱스는 데이터 포인트의 '주소' 역할을 합니다. DataFrame 전체에서 데이터에 액세스하고 구성하는 수단을 제공합니다. pandas에서 할당한 기본 정수 시퀀스이거나 사용자 정의 사용자 정의 인덱스일 수 있습니다.
열은 DataFrame에서 다양한 유형의 데이터를 호스팅하는 변수입니다. 각 열은 기본적으로 일련의 데이터입니다. 정수, 실수 또는 문자열과 같은 다양한 데이터 유형을 보유할 수 있습니다. 일반적으로 열 이름이라고 하는 열의 레이블은 이 일련의 데이터를 식별합니다.
pandas DataFrame에서 데이터 조작에는 종종 행 레이블(인덱스) 또는 열 레이블 작업이 포함됩니다.
다중 인덱스 DataFrame으로 수행할 수 있는 몇 가지 일반적인 작업에는 레이블을 기반으로 행 또는 열 선택, 이름 바꾸기 및 삭제가 포함됩니다.
3. Pandas로 인덱스 열을 삭제하는 방법
pandas에서는 DataFrame 메서드 reset_index()를 사용하여 인덱스를 삭제하고 재설정할 수 있습니다.
다음 DataFrame이 있다고 가정합니다.
인덱스 열을 삭제하려면 다음 코드를 사용할 수 있습니다.
df.reset_index(drop=True)
이 코드를 실행하면 아래 예제가 표시됩니다.
출력에서 인덱스가 삭제되고 원래 인덱스 값으로 대체된 것을 볼 수 있습니다.
Pandas의 drop 메서드를 사용하여 행 또는 열에서 지정된 레이블을 제거할 수도 있습니다 .
이 방법의 구문은 다음과 같습니다.
DataFrame.drop(labels=None, *, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
다음은 drop 메서드 의 주요 매개변수입니다 .
labels : 제거할 레이블입니다. 축 매개 변수 에 따라 행 또는 열이 될 수 있습니다 .
axis : 행( 0 또는 'index' ) 또는 열( 1 또는 'columns' ) 에서 삭제할지 여부를 결정합니다 .
index : axis=0 지정에 대한 대안입니다 . 제거할 행 레이블을 표시할 수 있습니다.
columns : axis=1 지정에 대한 대안입니다 . 제거할 열 레이블을 표시할 수 있습니다.
inplace : True 로 설정하면 작업이 제자리에서 수행되며 이는 원본 DataFrame이 수정됨을 의미합니다. False (기본값) 이면 지정된 레이블이 제거된 새 DataFrame이 반환됩니다.
errors : 누락된 레이블을 처리하는 방법을 제어합니다. 'raise' (기본값) 인 경우 레이블을 찾을 수 없을 때 오류가 발생합니다. 'coerce' 인 경우 누락된 레이블은 자동으로 무시됩니다.
다음 DataFrame이 있다고 가정합니다.
인덱스가 1인 행을 삭제하려고 합니다. 삭제 방법을 사용하여 이를 수행하려면 import pandas로 시작하는 다음 코드를 작성할 수 있습니다.
import pandas as pd
# Drop row with index 1
df.drop(1, axis=0)
drop 함수 의 axis =0 인수는 인터프리터에게 우리가 행 방향 연산을 수행하고 있음을 알려줍니다. 두 번째 인수 1은 행 인덱스입니다. 인터프리터에게 인덱스 1이 있는 행을 삭제하라고 지시합니다.
위 작업 후 다음 DataFrame을 얻습니다.
이제 DataFrame에서 열 머리글로 Age가 있는 열을 삭제한다고 가정해 보겠습니다. 이를 달성하기 위해 다음 코드를 작성할 수 있습니다.
# Drop column 'Age'
df.drop('Age', axis=1)
인수 axis=1은 인터프리터에게 우리가 열 단위 연산을 수행하고 있음을 알려줍니다. 인수 'Age'는 인터프리터에게 이름이 'Age'인 열을 삭제하도록 지시합니다.
위의 코드를 실행하면 다음과 같은 DataFrame을 얻게 됩니다.
여러 행과 열을 삭제하는 방법
위의 예는 단일 행 또는 열을 삭제하는 방법을 보여줍니다. 여러 행이나 열을 삭제하려면 어떻게 해야 합니까?
이를 달성하기 위해 몇 가지 약간 변경하여 동일한 코드를 사용합니다. 단일 값을 사용하는 대신 drop 함수에 인수 목록 을 제공하여 한 번에 여러 행과 열을 제거할 수 있습니다.
DataFrame에서 처음 2개의 행을 삭제하고 싶다고 가정해 보겠습니다. 이를 달성하기 위해 다음 코드를 사용할 수 있습니다.
# Dropping first 2 rows by index
df = df.drop([0, 1], axis=0)
이 코드에서는 인터프리터에게 행 0과 1을 삭제하라고 지시합니다. 이 코드의 출력은 다음과 같습니다.
행 0과 1이 더 이상 DataFrame에 없음을 알 수 있습니다.
Department 및 Salary 열도 삭제하겠습니다. 이를 위해 다음 코드를 사용할 수 있습니다.
# Dropping columns by name
df = df.drop(['Salary', 'Department'], axis=1)
이 Python 스크립트에서는 통역사에게 Salary 및 Department가 있는 열을 열 머리글로 삭제하도록 요청하고 있습니다. 이 코드의 출력은 다음과 같습니다.
이것이 우리의 마지막 DataFrame입니다. drop 메서드를 사용하여 DataFrame에서 총 2개의 행과 2개의 열을 삭제했습니다.
Pandas의 MultiIndex에 대해 자세히 알아보려면 다음 동영상을 확인하세요.
Inplace를 사용하여 행과 열을 삭제하는 방법
이전 예에서 먼저 DataFrame을 변경한 다음 새 DataFrame으로 저장하는 것을 볼 수 있습니다. 그러나 이것은 행과 열을 삭제하는 효율적인 방법이 아닙니다.
행과 열을 삭제하는 또 다른 대안은 삭제 함수의 inplace 인수를 True 로 설정하는 것입니다 .
inplace 매개변수를 True 로 설정하면 DataFrame을 재할당하지 않고도 영구적으로 수정할 수 있습니다.
이는 새 DataFrame 생성을 방지하여 메모리를 절약할 수 있으므로 큰 DataFrame을 처리할 때 유용합니다.
다음은 inplace 로 행과 열을 삭제하는 예입니다 .
# Dropping rows by index inplace
df.drop(labels=[0, 1], axis=0, inplace=True)
# Dropping columns by name inplace
df.drop(['Salary', 'Department'], axis=1, inplace=True)
위 코드의 출력은 다음과 같습니다.
여기에서 새로운 DataFrame을 생성하는 것이 아니라 원래 DataFrame을 변경하는 것을 볼 수 있습니다.
Pandas에서 인덱스로 작업하는 방법
이 섹션에서는 pandas DataFrame 에서 인덱스로 작업하는 방법에 대해 설명합니다 . 다음 두 하위 섹션을 다룹니다.
인덱스 설정 및 재설정
ID 및 인덱스 열
1. 인덱스 설정 및 초기화 방법
Pandas 작업의 한 가지 중요한 측면은 인덱스 열을 설정하고 재설정하는 방법을 이해하는 것입니다. 인덱스는 각 행의 키 식별자이며 이를 변경하려는 경우가 있습니다.
새 색인 설정
새 인덱스를 설정하려면 set_index() 메서드를 사용할 수 있습니다. set_index 구문은 다음과 같습니다.
df.set_index('column_name', inplace=True)
여기서 inplace=True 인수는 기존 DataFrame을 변경한다는 의미입니다.
이를 시연하기 위해 다음 DataFrame을 사용합니다.
Name 열을 DataFrame의 인��스로 만들고 싶다고 가정해 보겠습니다. 이를 달성하기 위해 다음 코드를 사용할 수 있습니다.
df.set_index('Name', inplace=True)
이 Python 스크립트는 Name을 DataFrame의 인덱스로 만듭니다 . 이 코드의 출력은 다음과 같습니다.
인덱스 값 재설정
인덱스를 기본 형식(예: 0에서 DataFrame 길이 빼기 1까지의 RangeIndex )으로 재설정하려면 reset_index() 메서드를 사용할 수 있습니다.
reset_index() 구문은 다음과 같습니다.
df.reset_index(drop=True, inplace=True)
drop=True 를 설정하면 현재 인덱스 열이 제거되는 반면 inplace=True 는 변경 사항이 새로 만들지 않고 DataFrame에 직접 적용되도록 합니다.
이 코드를 이전 DataFrame에 적용하면 다음과 같은 결과가 나타납니다.
이전에 인덱스였던 Name이 기본값으로 재설정된 것을 볼 수 있습니다.
2. 인덱스 열을 사용한 추가 작업
예를 들어 CSV 파일에서 DataFrame을 가져올 때 index_col 매개변수를 사용하여 인덱스로 사용할 열을 지정할 수 있습니다.
index_col 의 구문은 다음과 같습니다.
df = pd.read_csv('data.csv', index_col='column_name')
또한 인덱스 열 없이 DataFrame을 내보내려면 인덱스 매개 변수를 False 로 설정할 수 있습니다.
이 방법의 구문은 다음과 같습니다.
df.to_csv('output.csv', index=False)
이제 인덱스 삭제 방법을 이해했으므로 다음 섹션에서는 삭제 기능을 사용할 때 오류를 처리하는 방법을 살펴보겠습니다.
Pandas에서 Drop 기능을 사용할 때 오류를 처리하는 방법
이 섹션에서는 Pandas의 드롭 기능을 사용하여 DataFrame에서 인덱스 열을 제거할 때 오류 및 특수 사례를 처리하는 방법을 살펴봅니다 .
특히 다음 사항에 대해 논의합니다.
키 오류 처리
중복 행 작업
1. KeyError 처리 방법
Pandas에서 드롭 기능을 사용할 때 지정된 인덱스 또는 열이 DataFrame에서 발견되지 않으면 KeyError가 발생할 수 있습니다.
이 오류가 발생하지 않도록 하려면 errors 매개 변수를 사용할 수 있습니다. errors 매개변수에는 'raise' 및 'ignore' 의 두 가지 옵션이 있습니다. 기본적으로 'raise'로 설정되어 있는데, 이는 지정된 인덱스나 열을 찾을 수 없는 경우 KeyError가 발생함을 의미합니다.
그러나 오류를 억제하고 코드를 계속 실행하려면 '무시'로 설정할 수 있습니다.
다음 DataFrame이 있다고 가정합시다. DataFrame에 존재하지 않는 행을 삭제하고 어떤 일이 발생하는지 확인하십시오.
# Attempt to drop a non-existent index, will raise KeyError
# df.drop(5, inplace=True)
Python 스크립트는 다음 오류를 표시합니다.
이러한 오류를 처리하려면 데이터 세트에 있는 행을 참조하고 있는지 확인하십시오.
2. 중복 행 작업 방법
데이터를 정리할 때 중요한 작업은 중복을 찾아 제거하는 것입니다.
DataFrame에서 중복 행을 처리하면 삭제 기능을 사용할 때 복잡성이 추가될 수 있습니다.
중복된 인덱스 값을 기준으로 행을 삭제하려면 duplicated 함수를 사용한 다음 부울 인덱싱을 사용하여 중복되지 않은 행만 선택할 수 있습니다.
다음 DataFrame이 있다고 가정합니다.
데이터 세트에 중복 인덱스가 있음을 알 수 있습니다. 중복을 제거하려면 먼저 다음 코드를 사용하여 중복 값을 식별합니다.
# Find duplicated index values
duplicated_rows = df.index.duplicated(keep='first')
그런 다음 중복되지 않은 행만 선택하고 다음 코드를 사용하여 이전 DataFrame에 저장합니다.
# Select only non-duplicated rows
df = df[~duplicated_rows]
최종 출력은 다음과 같습니다.
최종 출력에는 더 이상 중복 행이 없습니다.
마지막 생각들
데이터 과학 및 분석 여정을 계속하면서 데이터를 조작하고 관리하는 방법을 이해하는 것이 가장 중요한 기술이 될 것입니다.
pandas에서 인덱스 삭제와 같은 작업을 마스터하는 것이 이 작업의 핵심 부분입니다. 인덱스를 재설정하거나 삭제하는 방법을 아는 것은 데이터를 정리, 변환 및 도출하기 위한 디딤돌입니다.
인덱스를 삭제하는 방법을 배우면 DataFrames를 보다 효과적으로 재구성할 수 있습니다. 또한 더 쉽게 읽고 분석할 수 있는 깔끔한 데이터 세트를 만들 수 있습니다. 또한 인덱스 충돌이 발생할 수 있는 여러 DataFrame을 병합하거나 연결할 때 인덱스를 재설정하는 것이 중요할 수 있습니다.
인덱스를 삭제하는 기능을 통해 데이터 세트를 더 잘 제어하고 유연하게 사용할 수 있습니다!
파이썬에서 자기란 무엇인가: 실제 사례
R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.
이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.
이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.
이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.
LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.
LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.
이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.
지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.
LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것