데이터 과학자에게 필수적인 상위 5가지 Pandas 함수 [2022]
게시 됨: 2021-01-02Pandas 는 Python을 사용한 데이터 과학 및 데이터 분석과 관련하여 가장 많이 사용되고 사랑받는 라이브러리 중 하나입니다. 특별한 이유는 무엇입니까? 이 자습서에서는 Pandas를 데이터 과학자의 도구 키트에서 매우 유용한 도구로 만드는 5가지 기능을 살펴보겠습니다.
이 튜토리얼을 마치면 Pandas의 아래 기능과 애플리케이션에 사용하는 방법에 대한 지식을 갖게 될 것입니다.
- 값_카운트
- 그룹비
- loc과 iloc
- 독특하고 독특한
- 컷과 큐컷
목차
데이터 과학자를 위한 최고의 Pandas 함수
1. value_counts()
Pandas의 value_counts() 함수는 데이터 프레임의 열에 있는 모든 고유 요소의 개수를 표시하는 데 사용됩니다.
전문가 팁: 시연하기 위해 Titanic Dataset을 사용하겠습니다.
이제 Embarked 기능의 클래스 수를 찾기 위해 value_counts 함수를 호출할 수 있습니다.
기차[ '출발' ].value_counts() |
#산출: 에스 644 C 168 질문 77 |
또한 이 숫자가 의미가 없으면 대신 백분율을 볼 수 있습니다.
기차[ '출발' ].value_counts(normalize= True ) |
#산출: 에스 0.724409 C 0.188976 Q 0.086614 |
또한 value_counts는 기본적으로 NaN 또는 누락된 값을 고려하지 않으며 이는 확인하는 데 매우 중요합니다. 그렇게 하려면 매개변수 dropna를 false로 설정할 수 있습니다.
기차[ '출발' ].value_counts(dropna= False ) |
#산출: 에스 644 C 168 질문 77 난 2 |
2. group_by()
Pandas group_by를 사용하면 데이터의 패턴과 세부 정보를 볼 수 있도록 특정 열을 기준으로 데이터 프레임을 분할하고 그룹화할 수 있습니다. Group_by는 분할, 적용 및 결합의 3가지 주요 단계를 포함합니다.
train.groupby( '섹스' ).mean() |
산출:
보시다시피 데이터 프레임을 '성별' 기능별로 그룹화하고 평균을 사용하여 집계했습니다.
Pandas의 내장 시각화를 사용하여 플롯할 수도 있습니다.
df.groupby( '섹스' ).sum().plot(종류= '바' ) |
계층적 분할을 위해 여러 기능을 사용하여 그룹화할 수도 있습니다.
df.groupby([ '섹스' , '생존' ] )[ '생존' ].count() |
필독: 팬더 인터뷰 질문
3. loc과 iloc
Pandas에서 인덱싱은 가장 기본적인 작업 중 하나이며 가장 좋은 방법은 loc 또는 iloc을 사용하는 것입니다. "Loc"은 위치를 나타내고 "i"는 인덱스 위치를 나타냅니다. 즉, 열/행의 이름이나 레이블을 사용하여 데이터 프레임을 인덱싱하려면 loc을 사용합니다. 위치를 사용하여 열이나 행을 인덱싱하려면 iloc 함수를 사용합니다. 먼저 loc 을 확인해보자 .
train.loc[ 2 , '섹스' ] |
위의 연산은 행 인덱스 2와 열 'sex'의 요소를 제공합니다. 마찬가지로 성별 열의 모든 값이 필요한 경우 다음을 수행합니다.
train.loc[:, '섹스' ] |
또한 다음과 같이 여러 열을 필터링할 수 있습니다.
train.loc[:, '섹스' , '출발' ] |
다음과 같이 loc 내에서 부울 조건을 사용하여 필터링할 수도 있습니다.
train.loc[기차 나이 >= 25 ] |
특정 행만 보려면 loc을 사용하여 데이터 프레임을 슬라이스할 수 있습니다.
기차.loc[ 100 : 200 ] |
또한 다음과 같이 열 축에서 데이터 프레임을 슬라이스할 수 있습니다.
train.loc[:, '성별' : '요금' ] |
위의 작업은 모든 행에 대해 'sex' 열에서 'fare'로 데이터 프레임을 슬라이스합니다.
이제 iloc으로 넘어갑시다. iloc은 인덱스 번호나 위치를 사용하는 인덱스만 사용합니다. 다음과 같이 데이터 프레임을 조각화할 수 있습니다.
기차.iloc[ 100 : 200 , 2 : 9 ] |
위의 작업은 100에서 199까지의 행과 2에서 8까지의 열을 분할합니다. 마찬가지로 데이터를 수평으로 분할하려는 경우 다음을 수행할 수 있습니다.
기차.iloc[: 300 , :] |
4. 고유() 및 고유()
Pandas unique는 모든 기능에서 고유한 값을 모두 가져오는 데 사용됩니다. 이것은 주로 데이터의 범주형 기능에서 범주를 가져오는 데 사용됩니다. Unique는 NaN을 포함한 모든 고유 값을 표시합니다. 다른 고유 값으로 취급합니다. 한 번 보자:
기차[ '섹스' ].unique() |
#산출: [ '여성' , '남성' ] |
보시다시피 '성' 기능에서 고유한 값을 제공합니다.
마찬가지로 일부 기능에는 고유 값이 많을 수 있으므로 고유 값의 수도 확인할 수 있습니다.

기차[ '섹스' ].nunique() |
#산출: 2 |
그러나 nunique()는 NaN을 고유한 값으로 간주하지 않습니다. 데이터에 NaN이 있는 경우 Pandas가 NaN을 포함한 개수도 제공하는지 확인하려면 dropna 매개변수를 False로 전달해야 합니다.
기차[ '섹스' ].nunique(dropna= False ) |
#산출: 삼 |
5. cut() 및 qcut()
Pandas 컷은 기능을 이산화하기 위해 범위의 값을 비닝하는 데 사용됩니다. 자세히 살펴보겠습니다. 비닝은 연속 값의 범위를 기반으로 숫자 또는 연속 특성을 불연속 값 집합으로 변환하는 것을 의미합니다. 이는 데이터 포인트가 속하는 범위를 기반으로 추세를 확인하려는 경우에 유용합니다.
작은 예를 들어 이것을 이해합시다.
0-100 범위의 7명의 어린이에 대한 점수가 있다고 가정합니다. 이제 모든 어린이의 점수를 특정 "빈"에 할당할 수 있습니다.
df = pd.Dataframe(데이터= { '이름' : [ 'Ck' , 'Ron' , 'Mat' , 'Josh' , 'Tim' , 'SypherPK' , 'Dew' , 'Vin' ], '마크' :[ 37 , 91 , 66 , 42 , 99 , 81 , 45 , 71 ] }) df[ 'marks_bin' ] = pd.cut(df[ 'Marks' ], bins=[ 0 , 50 , 70 , 100 ], 레이블=[ 1 , 2 , 3 ]) |
그런 다음 출력을 새 기능으로 추가하고 마크 기능을 삭제할 수 있습니다. 새 데이터 프레임은 다음과 같습니다.
#산출: 이름 표시marks_bin 0 체크 37 1 1 론 91 삼 2 매트 66 2 3 여호수아 42 1 4 팀 99 삼 5 사이퍼PK 81 삼 6 이슬 45 1 7 빈 71 삼 |
따라서 bins = [ 0 , 50 , 70 , 100 ] 이라고 하면 3개의 범위가 있음을 의미합니다.
빈 1의 경우 0 ~ 50,
빈 2의 경우 51~70,
71~100은 bin 3에 속합니다.
이제 우리의 기능에는 점수가 포함되지 않고 해당 학생의 점수가 있는 범위 또는 빈이 포함됩니다.
cut()과 유사하게 Pandas는 qcut() 이라는 형제 함수도 제공합니다 . Pandas qcut 은 분위수 수를 취하고 데이터 분포를 기반으로 데이터 포인트를 각 bin으로 나눕니다. 따라서 위의 컷 기능을 qcut으로 변경할 수 있습니다.
df[ 'marks_bin' ] = pd.qcut(df[ '마크' ], q= 3 , 레이블=[ 1 , 2 , 3 ]) |
위의 작업에서 우리는 Pandas에게 기능을 3개의 동일한 부분으로 자르고 레이블을 할당하도록 지시합니다. 출력은 다음과 같습니다.
이름 표시marks_bin 0 체크 37 1 1 론 91 삼 2 매트 66 2 3 여호수아 42 1 4 팀 99 삼 5 사이퍼PK 81 삼 6 이슬 45 1 7 빈 71 2 |
마지막 값이 3에서 2로 어떻게 변경되었는지 확인하십시오.
또한 읽기: Pandas Dataframe Astype
가기 전에
우리는 가장 많이 사용되는 Pandas 함수를 보았습니다. 그러나 이것들만이 중요한 것은 아니며 Pandas가 주로 사용하는 기능에 대해 더 많이 배우도록 권장합니다. Pandas가 가지고 있는 모든 기능을 사용하지 않고 그 중 일부만 사용할 수 있으므로 이것은 훌륭하고 효율적인 접근 방식입니다.
세계 최고의 대학에서 데이터 과학 과정 을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
Pandas 라이브러리가 인기 있는 이유는 무엇입니까?
이 라이브러리는 실제로 데이터 과학자와 데이터 분석가 사이에서 꽤 인기가 있습니다. 그 이유는 추출된 데이터를 조작할 수 있는 다양한 파일 형식과 풍부한 기능 모음을 지원하기 때문입니다. NumPy와 같은 다른 라이브러리 및 패키지와 쉽게 통합할 수 있습니다.
이 강력한 라이브러리는 유연한 방식으로 방대한 데이터 세트를 조작하기 위한 다양하고 유용한 기능을 제공합니다. 일단 마스터하면 몇 줄의 코드로 훌륭한 작업을 쉽게 수행할 수 있습니다.
병합 기능이란 무엇이며 왜 사용합니까?
병합 기능은 2 데이터 프레임의 여러 행 또는 열을 병합하는 데 사용되는 Pandas 데이터 프레임의 특수 기능입니다. 고용량 메모리 조인 작업이며 관계형 데이터베이스와 유사합니다. on = 열 이름을 사용하여 공통 열의 데이터 프레임을 병합할 수 있습니다.
left_on = 열 이름 또는 right_on = 열 이름을 업데이트하여 왼쪽 또는 오른쪽 데이터 프레임의 열을 키로 사용하여 테이블을 정렬할 수 있습니다.
Pandas 라이브러리 외에 데이터 과학을 위한 다른 Python 라이브러리는 무엇입니까?
Pandas 라이브러리 외에도 데이터 과학을 위한 최고의 라이브러리로 간주되는 Python 라이브러리가 많이 있습니다. 여기에는 PySpark, TensorFlow, Matplotlib, Scikit Learn, SciPy 등이 포함됩니다. 그들 각각은 독특하고 놀라운 특징과 기능으로 널리 사용됩니다.
통계 데이터를 처리해야 할 때 SciKit Learn이 더 자주 사용되는 것처럼 모든 라이브러리에는 고유한 의미가 있습니다. 데이터 분석 외에도 이러한 놀라운 라이브러리에서 제공하는 기능을 사용하여 대시보드 및 시각적 보고서를 생성할 수도 있습니다.