판다 마스터하기: 다음 프로젝트를 위한 중요한 판다 기능

게시 됨: 2020-11-30

Pandas 라이브러리는 사용하기 쉬운 특성, 다양한 기능 및 더 나은 결과 해석으로 인해 모든 데이터 과학자 또는 분석가가 가장 좋아하는 라이브러리입니다. 데이터 과학 여정을 시작하는 모든 개인은 팬더를 잘 제어하고 데이터를 정리하고 사전 처리하는 수동 작업을 줄이기 위해 파이프라인을 마련하는 것이 좋습니다.

Pandas는 Numpy를 기반으로 구축되어 명령을 더 빠르게 실행하고 더 짧은 시간에 작업을 완료할 수 있습니다. 이 기사에서는 프로젝트의 코드 품질을 향상시킬 수 있는 일부 과소평가된 pandas 기능을 공유합니다.

계속 진행하기 전에 간단한 범례가 있습니다.

  • 언급된 모든 명령은 데이터 프레임이 pd.DataFrame()의 객체인 'df'로 명명되었다고 가정합니다.
  • Pandas 라이브러리는 'pd'라는 별칭으로 가져왔습니다.

목차

문자열 접근자

문자열 또는 텍스트 데이터는 데이터세트의 주요 부분을 차지합니다. 저자, 제목, 책 출판 또는 특정 해시태그에 대해 작성된 트윗과 관련된 정보이든, 우리는 많은 텍스트 데이터를 가지고 있으며 이 데이터는 적절하게 정리되고 Naive Bayes 등과 같은 분류기에 제공될 때 편리합니다. 다음은 적용할 수 있는 몇 가지 트릭입니다.

  • 문자열 유형 데이터에 액세스하려면 'str' 접근자를 사용하십시오. 예: df['column_name'].str
  • 이렇게 하면 선택한 열에 대해 모든 문자열 작업을 수행할 수 있습니다.
  • 몇 가지 일반적인 작업에는 다음이 포함됩니다.
    • df['column_name'].str.len(): 각 문자열의 길이
    • .str.split(): 특정 문자에서 분할
    • .str.contains(): 특정 단어가 문자열에 있는지 여부에 대한 T/F를 반환합니다.
    • .str.count(): 전달된 정규식을 충족하는 행 수를 반환합니다.
    • .str.findall(): 전달된 표현식과 일치하는 결과를 반환합니다.
    • .str.replace(): findall과 동일하지만 여기에서 일치하는 항목의 교체가 발생합니다.
    • .title, .isalpha, .isalnum, .isdecimal 등과 같은 모든 문자열 연산이 지원됩니다.

또한 읽기: Pandas Dataframe Astype

날짜/시간 접근자

날짜 및 시간은 일반적으로 타임스탬프, 시작 시간, 종료 시간 또는 해당 이벤트와 관련된 기타 시간의 형태로 데이터세트에 존재합니다. 이 데이터는 미래 이벤트를 예측하거나 시계열 분석으로 인용할 수 있는 타임라인을 따라 추세를 제공하므로 이 데이터를 적절하게 구문 분석하는 것이 유용합니다. 몇 가지 유용한 명령을 살펴보겠습니다.

  • DateTime 데이터에 액세스하려면 pd.to_datetime() 함수를 사용하여 현재 데이터 유형(날짜 값은 문자열 또는 객체로 구문 분석됨)을 DateTime으로 변환합니다.
  • 이제 '.dt' 접근자를 사용하여 다음과 같이 필요한 모든 DateTime 정보에 액세스할 수 있습니다.
    • df['column_name'].dt.day: 날짜의 날짜를 반환합니다.
    • .dt.time: 시간
    • .dt.year: 날짜의 연도
    • .dt.month: 날짜의 월
    • .dt.weekday: 일요일인지 월요일인지... 숫자 형식으로 0은 월요일을 나타냅니다. 요일 이름을 원하면 .dt.day_name을 사용하십시오.
    • .dt.is_month_start: 날짜가 해당 월의 1일인지 여부에 따라 T/F를 반환합니다.
    • .dt.is_month_end month_start와 동일한 기능이지만 여기에서 월의 마지막 날짜가 확인됩니다.
    • .dt.quater: 날짜가 속한 분기를 반환합니다.
    • .dt.is_quater_start: 날짜가 분기의 첫 번째 날인지 여부를 T/F 반환
    • .dt.is_quater_end: 분기의 마지막 날인지 여부
    • .dt.normalize: 시간 구성 요소가 분석에 가치 있는 기여를 추가하지 않으면 무시할 수 있습니다. 이 명령은 시간을 자정(00:00:00)으로 반올림합니다.

팬더 플로팅

플로팅 시각화는 데이터 분석의 핵심 구성 요소 중 하나이며 피쳐 엔지니어링을 수행하는 동안 중요한 역할을 합니다. 예를 들어, 데이터 세트의 이상치는 중앙값과 사분위수 범위를 나타내는 상자 플롯을 사용하여 감지할 수 있으며, 극단에 이상값을 남길 수 있습니다.

플로팅은 대부분 seaborn, plotly, bokeh, matplotlib와 같은 다른 라이브러리를 통해 수행되지만 라이브러리를 명시적으로 정의하지 않고 데이터를 즉시 시각화하고 싶을 때? 판다가 해결책을 찾았습니다. pd.plot() 함수를 사용하면 matplotlib를 사용하여 내부적으로 호출되는 그래프를 직접 그릴 수 있습니다. 이를 위해 다양한 옵션을 사용할 수 있습니다.

  • df.plot() 또는 df['column_name'].plot()(그래프 유형에 따라 다름)
  • df.plot()에는 그래프를 정의하는 매개변수 '종류'가 있습니다. 기본적으로 '선' 플롯이지만 사용 가능한 다른 옵션은 'bar', 'barh', 'box', 'hist', 'kde' 등입니다.
  • matplotlib 백엔드를 호출합니다. 즉, 'ax' 접근자를 통해 인수에 액세스할 수 있습니다.
  • .plot() 함수는 'title', 'xticks', 'xlim', 'xlabel', 'fontsize', 'colormap'과 같은 인수를 사용할 수도 있어 외부 라이브러리를 어느 정도 정의할 필요가 없습니다.

기타 기능

  • pd.get_dummies(): 데이터를 사전 처리하는 동안 모델에 제공하기 위해 숫자 형식으로 변환해야 하는 범주형 데이터와 마주치는 경우가 있습니다. 이러한 범주가 상당히 낮으면 원-핫 인코딩이 선호되지만 수동으로 수행하는 데 시간이 걸립니다. 이 더미 함수는 값을 변환할 뿐만 아니라 drop_first가 True로 설정된 경우 모든 범주가 ​​포함된 이전 열을 삭제합니다.
  • df.query(): 데이터 프레임에 조건부 마스크를 적용할 수 있는 함수입니다. 이 마스킹과 일반 마스킹의 기본적인 차이점은 이 함수가 부울 마스크 대신 값을 직접 반환하므로 마스크를 만들고 데이터 프레임에 적용하는 수고를 줄일 수 있다는 것입니다.
  • df.select_dtypes(): 때때로 우리는 한 유형의 데이터 유형에 대해 몇 가지 특정 작업을 수행해야 합니다. 예를 들어 외부 파일에서 데이터를 읽는 동안 일부 데이터 유형은 개체로 정의됩니다. 데이터를 정리하는 동안 데이터 세트에는 모든 올바른 데이터 유형이 있어야 하며 df.astype('data-type')에 의해 수동으로 수행하는 것은 그러한 데이터 유형의 수가 많을 때 지루할 것입니다. 이 함수는 지정된 데이터 유형을 선택하고 .apply() 함수와 결합할 수 있습니다. 샘플 코드는 다음과 같습니다.

df.select_dtypes(객체).apply(astype(str))

필독: 팬더 인터뷰 질문

결론

이 할당을 연결이라고 하며 데이터 과학 작업을 수행하는 동안 수행할 모든 단계에 대해 변수를 정의하는 노력을 줄이기 위해 매우 일반적입니다.

Pandas에 대해 자세히 알아보려면 IIIT-B & upGrad의 데이터 과학 PG 디플로마를 확인하세요. 이 디플로마는 일하는 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 업계 전문가와의 멘토링, 1-on -1 업계 멘토, 400시간 이상의 학습 및 최고의 기업에서의 취업 지원.