웹사이트 검색

Python Pandas 모듈 자습서


Python Pandas 모듈

  • Pandas는 Python의 오픈 소스 라이브러리입니다. 고성능 데이터 구조 및 데이터 분석 도구를 바로 사용할 수 있습니다.
  • Pandas 모듈은 NumPy 위에서 실행되며 데이터 과학 및 데이터 분석에 널리 사용됩니다.
  • NumPy는 다차원 배열과 광범위한 수학적 배열 연산을 지원하는 저수준 데이터 구조입니다. Pandas에는 더 높은 수준의 인터페이스가 있습니다. 또한 표 데이터의 간소화된 정렬과 강력한 시계열 기능을 제공합니다.
  • DataFrame은 Pandas의 핵심 데이터 구조입니다. 테이블 형식 데이터를 2D 데이터 구조로 저장하고 조작할 수 있습니다.
  • Pandas는 DataFrame에서 풍부한 기능 세트를 제공합니다. 예: 데이터 정렬, 데이터 통계, 슬라이싱, 그룹화, 병합, 데이터 연결 등

Pandas 설치 및 시작하기

Pandas 모듈을 설치하려면 Python 2.7 이상이 필요합니다. conda를 사용하는 경우 아래 명령을 사용하여 설치할 수 있습니다.

conda install pandas

PIP를 사용하는 경우 아래 명령을 실행하여 pandas 모듈을 설치합니다.

pip3.7 install pandas

Python 스크립트에서 Pandas 및 NumPy를 가져오려면 아래 코드를 추가합니다.

import pandas as pd
import numpy as np

Pandas는 NumPy 라이브러리에 의존하므로 이 종속성을 가져와야 합니다.

Pandas 모듈의 데이터 구조

Pandas 모듈에서 제공하는 3가지 데이터 구조는 다음과 같습니다.

  • 시리즈: 균질한 데이터를 갖는 구조와 같은 1-D 크기 불변 배열입니다.
  • DataFrames: 유형이 다른 열이 있는 2D 크기 변경 가능한 표 구조입니다.
  • 패널: 3차원 크기 변경 가능 배열입니다.

판다 데이터프레임

DataFrame은 가장 중요하고 널리 사용되는 데이터 구조이며 데이터를 저장하는 표준 방법입니다. DataFrame에는 SQL 테이블이나 스프레드시트 데이터베이스와 같이 행과 열에 정렬된 데이터가 있습니다. 데이터를 DataFrame에 하드 코딩하거나 CSV 파일, tsv 파일, Excel 파일, SQL 테이블 등을 가져올 수 있습니다. 아래 생성자를 사용하여 DataFrame 개체를 만들 수 있습니다.

pandas.DataFrame(data, index, columns, dtype, copy)

다음은 매개변수에 대한 간략한 설명입니다.

  • data - 입력 데이터에서 DataFrame 개체를 만듭니다. list, dict, series, Numpy ndarrays 또는 기타 DataFrame이 될 수 있습니다.
  • 색인 - 행 레이블이 있음
  • 열 - 열 레이블을 만드는 데 사용
  • dtype - 각 열의 데이터 유형을 지정하는 데 사용, 선택적 매개변수
  • 복사 - 데이터 복사에 사용(있는 경우)

DataFrame을 만드는 방법에는 여러 가지가 있습니다. 사전 또는 사전 목록에서 DataFrame 개체를 만들 수 있습니다. 튜플 목록, CSV, Excel 파일 등에서 만들 수도 있습니다. 사전 목록에서 DataFrame을 만드는 간단한 코드를 실행해 보겠습니다.

import pandas as pd
import numpy as np
df = pd.DataFrame({
    "State": ['Andhra Pradesh', 'Maharashtra', 'Karnataka', 'Kerala', 'Tamil Nadu'],
    "Capital": ['Hyderabad', 'Mumbai', 'Bengaluru', 'Trivandrum', 'Chennai'],
    "Literacy %": [89, 77, 82, 97,85],
    "Avg High Temp(c)": [33, 30, 29, 31, 32 ]
})
print(df)

CSV에서 DataFrame으로 데이터 가져오기

CSV 파일을 가져와서 DataFrame을 만들 수도 있습니다. CSV 파일은 한 줄에 하나의 데이터 레코드가 있는 텍스트 파일입니다. 레코드 내의 값은 "쉼표\ 문자를 사용하여 구분됩니다. Pandas는 CSV 파일의 내용을 DataFrame으로 읽어들이는 read_csv()라는 유용한 메서드를 제공합니다. 예를 들어 다음을 만들 수 있습니다. 인도 도시의 세부 정보가 포함된 'cities.csv'라는 파일. CSV 파일은 Python 스크립트가 포함된 동일한 디렉터리에 저장됩니다. 이 파일은 다음을 사용하여 가져올 수 있습니다.

import pandas as pd
data =  pd.read_csv('cities.csv')
print(data)

. 우리의 목표는 데이터를 로드하고 분석하여 결론을 도출하는 것입니다. 따라서 편리한 방법을 사용하여 데이터를 로드할 수 있습니다. 이 자습서에서는 DataFrame의 데이터를 하드 코딩합니다.

DataFrame에서 데이터 검사

해당 이름을 사용하여 DataFrame을 실행하면 전체 테이블이 표시됩니다. 실시간으로 분석할 데이터 세트에는 수천 개의 행이 있습니다. 데이터 분석을 위해서는 방대한 양의 데이터 세트에서 데이터를 검사해야 합니다. Pandas는 필요한 데이터만 검사할 수 있는 많은 유용한 기능을 제공합니다. df.head(n)를 사용하여 처음 n개의 행을 가져오거나 df.tail(n)을 사용하여 마지막 n개의 행을 인쇄할 수 있습니다. 예를 들어 아래 코드는 DataFrame에서 처음 2개 행과 마지막 1개 행을 인쇄합니다.

print(df.head(2))
print(df.tail(1))

1. 기록의 통계 요약 얻기

df.describe() 함수를 사용하여 데이터의 통계 요약(개수, 평균, 표준 편차, 최소값, 최대값 등)을 얻을 수 있습니다. 이제 이 기능을 사용하여 "Literacy %\ 열의 통계 요약을 표시해 보겠습니다. 이를 위해 아래 코드를 추가할 수 있습니다.

print(df['Literacy %'].describe())

2. 레코드 정렬

df.sort_values() 함수를 사용하여 모든 열을 기준으로 레코드를 정렬할 수 있습니다. 예를 들어 "문해율 %\ 열을 내림차순으로 정렬해 보겠습니다.

print(df.sort_values('Literacy %', ascending=False))

3. 기록 분할

컬럼명을 이용하여 특정 컬럼의 데이터를 추출할 수 있다. 예를 들어 '자본' 열을 추출하려면 다음을 사용합니다.

df['Capital']

또는

(df.Capital)
print(df[['State', 'Capital']])
df[0:3]

4. 데이터 필터링

열 값을 필터링하는 것도 가능합니다. 예를 들어 아래 코드는 Literacy%가 90% 이상인 열을 필터링합니다.

print(df[df['Literacy %']>90])
print(df[df['State'].isin(['Karnataka', 'Tamil Nadu'])])

5. 열 이름 바꾸기

df.rename() 함수를 사용하여 열의 이름을 바꿀 수 있습니다. 이 함수는 이전 열 이름과 새 열 이름을 인수로 사용합니다. 예를 들어 '문해율 %' 열의 이름을 '문해율'로 바꾸겠습니다.

df.rename(columns = {'Literacy %':'Literacy percentage'}, inplace=True)
print(df.head())

6. 데이터 랭글링

데이터 과학은 데이터가 데이터 알고리즘과 잘 작동할 수 있도록 데이터 처리를 포함합니다. 데이터 랭글링은 병합, 그룹화 및 연결과 같은 데이터 처리 프로세스입니다. Pandas 라이브러리는 merge(), groupby()concat()과 같은 유용한 함수를 제공하여 데이터 랭글링 작업을 지원합니다. 2개의 DataFrame을 만들고 데이터 랭글링 기능을 보여 주어 더 잘 이해하도록 합시다.

import pandas as pd

d = {  
    'Employee_id': ['1', '2', '3', '4', '5'],
    'Employee_name': ['Akshar', 'Jones', 'Kate', 'Mike', 'Tina']
}
df1 = pd.DataFrame(d, columns=['Employee_id', 'Employee_name'])  
print(df1)
import pandas as pd

data = {  
    'Employee_id': ['4', '5', '6', '7', '8'],
    'Employee_name': ['Meera', 'Tia', 'Varsha', 'Williams', 'Ziva']
}
df2 = pd.DataFrame(data, columns=['Employee_id', 'Employee_name'])  
print(df2)

ㅏ. 합병

이제 merge() 함수를 사용하여 'Employee_id' 값을 따라 생성한 2개의 DataFrame을 병합하겠습니다.

print(pd.merge(df1, df2, on='Employee_id'))

비. 그룹화

그룹화는 데이터를 여러 범주로 수집하는 프로세스입니다. 예를 들어, 아래 예에서 "Employee_Name\ 필드에는 "Meera\라는 이름이 두 번 있습니다. 따라서 "Employee_name\ 열로 그룹화하겠습니다.

import pandas as pd
import numpy as np

data = {
    'Employee_id': ['4', '5', '6', '7', '8'],
    'Employee_name': ['Meera', 'Meera', 'Varsha', 'Williams', 'Ziva']
}
df2 = pd.DataFrame(data)

group = df2.groupby('Employee_name')
print(group.get_group('Meera'))

씨. 연결

데이터 연결에는 한 데이터 세트를 다른 데이터 세트에 추가하는 작업이 포함됩니다. Pandas는 DataFrame을 연결하기 위해 concat()라는 함수를 제공합니다. 예를 들어 다음을 사용하여 DataFrames df1df2 를 연결해 보겠습니다.

print(pd.concat([df1, df2]))

Dict of Series를 전달하여 DataFrame 만들기

시리즈를 생성하려면 pd.Series() 메서드를 사용하고 배열을 전달할 수 있습니다. 다음과 같이 간단한 시리즈를 만들어 보겠습니다.

series_sample = pd.Series([100, 200, 300, 400])
print(series_sample)
d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
print(df)

열 선택, 추가, 삭제

DataFrame에서 특정 열을 선택할 수 있습니다. 예를 들어 첫 번째 열만 표시하려면 위의 코드를 다음과 같이 다시 작성할 수 있습니다.

d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
 'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
print(df['Matches played'])
d = {'Matches played' : pd.Series([400, 300, 200], index=['Sachin', 'Kohli', 'Raina']),
 'Position' : pd.Series([1, 2, 3, 4], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])}
df = pd.DataFrame(d)
df['Runrate']=pd.Series([80, 70, 60, 50], index=['Sachin', 'Kohli', 'Raina', 'Dravid'])
print(df)
del df['Matches played']

또는

df.pop('Matches played')

결론

이 자습서에서는 Python Pandas 라이브러리에 대해 간략하게 소개했습니다. 또한 데이터 과학 분야에서 사용되는 Pandas 라이브러리의 힘을 발휘하기 위해 실습 예제를 수행했습니다. 또한 Python 라이브러리의 다양한 데이터 구조를 살펴보았습니다. 참조: Pandas 공식 웹사이트