Pandas DataFrame을 만드는 방법 [예제 포함]
게시 됨: 2022-12-08강력한 데이터 조작 라이브러리인 pandas의 기본 데이터 구조인 pandas DataFrames 작업의 기본 사항을 알아보세요.
Python에서 데이터 분석을 시작하려는 경우 pandas는 작업 방법을 배워야 하는 첫 번째 라이브러리 중 하나입니다. CSV 파일 및 데이터베이스와 같은 여러 소스에서 데이터를 가져오는 것부터 누락된 데이터를 처리하고 이를 분석하여 통찰력을 얻는 것까지 - Pandas는 위의 모든 작업을 수행합니다.
pandas로 데이터 분석을 시작하려면 pandas의 기본 데이터 구조인 데이터 프레임 을 이해해야 합니다.
이 자습서에서는 pandas 데이터 프레임의 기본 사항과 데이터 프레임을 만드는 일반적인 방법을 배웁니다. 그런 다음 데이터 하위 집합을 검색하기 위해 데이터 프레임에서 행과 열을 선택하는 방법을 배웁니다.
이 모든 것을 시작하겠습니다.
Pandas 설치 및 가져오기
pandas는 타사 데이터 분석 라이브러리이므로 먼저 설치해야 합니다. 프로젝트의 가상 환경에 외부 패키지를 설치하는 것이 좋습니다.
Python의 Anaconda 배포판을 사용하는 경우 패키지 관리에 conda
를 사용할 수 있습니다.
conda install pandas
pip를 사용하여 팬더를 설치할 수도 있습니다.
pip install pandas
pandas 라이브러리에는 NumPy가 종속 항목으로 필요합니다. 따라서 NumPy가 아직 설치되지 않은 경우 설치 프로세스 중에 NumPy도 설치됩니다.
Pandas를 설치한 후 작업 환경으로 가져올 수 있습니다. 일반적으로 pandas는 pd
별칭으로 가져옵니다.
import pandas as pd
Pandas의 DataFrame이란 무엇입니까?

pandas의 기본 데이터 구조는 데이터 프레임 입니다. 데이터 프레임은 레이블 이 지정된 인덱스와 명명된 열이 있는 데이터의 2차원 배열입니다. pandas series 라는 데이터 프레임의 각 열은 공통 인덱스를 공유합니다.
다음은 앞으로 몇 분 동안 처음부터 새로 만들 예제 데이터 프레임입니다. 이 데이터 프레임에는 6명의 학생이 4주 동안 지출한 금액에 대한 데이터가 포함되어 있습니다.

학생의 이름은 행 레이블입니다. 그리고 열 이름은 'Week1'에서 'Week4'로 지정됩니다. 모든 열은 색인 이라고도 하는 동일한 행 레이블 집합을 공유합니다.
Pandas DataFrame을 만드는 방법
팬더 데이터 프레임을 만드는 방법에는 여러 가지가 있습니다. 이 자습서에서는 다음 방법에 대해 설명합니다.
- NumPy 배열에서 데이터 프레임 만들기
- Python 사전에서 데이터 프레임 만들기
- CSV 파일을 읽어서 데이터 프레임 만들기
NumPy 배열에서
NumPy 배열에서 데이터 프레임을 만들어 보겠습니다.
주어진 주에 각 학생이 $0에서 $100 사이를 지출한다고 가정하고 모양이 (6,4)인 데이터 배열을 만들어 봅시다. NumPy의 random
모듈에 있는 randint()
함수는 주어진 간격 [low,high)
에서 임의의 정수 배열을 반환합니다.
import numpy as np np.random.seed(42) data = np.random.randint(0,101,(6,4)) print(data)
array([[51, 92, 14, 71], [60, 20, 82, 86], [74, 74, 87, 99], [23, 2, 21, 52], [ 1, 87, 29, 37], [ 1, 63, 59, 20]])
pandas 데이터 프레임을 만들려면 다음과 같이 DataFrame
생성자를 사용하고 NumPy 배열을 data
인수로 전달할 수 있습니다.
students_df = pd.DataFrame(data=data)
이제 내장된 type()
함수를 호출하여 Students_df 의 유형을 확인할 수 students_df
. DataFrame
개체임을 알 수 있습니다.
type(students_df) # pandas.core.frame.DataFrame
print(students_df)

기본적으로 0에서 numRows
– 1까지의 범위 인덱싱이 있고 열 레이블은 0, 1, 2, …, numCols
-1임을 알 수 있습니다. 그러나 이것은 가독성을 떨어뜨립니다. 데이터 프레임에 설명 열 이름과 행 레이블을 추가하는 데 도움이 됩니다.
목록 두 개를 만들어 보겠습니다. 하나는 학생 이름을 저장하고 다른 하나는 열 레이블을 저장합니다.
students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny'] cols = ['Week1','Week2','Week3','Week4']
DataFrame
생성자를 호출할 때 index
와 columns
을 각각 사용할 행 레이블과 열 레이블 목록으로 설정할 수 있습니다.
students_df = pd.DataFrame(data = data,index = students,columns = cols)
이제 설명 행 및 열 레이블이 있는 Students_df 데이터 프레임이 students_df
.
print(students_df)

누락된 값 및 데이터 유형과 같은 데이터 프레임에 대한 일부 기본 정보를 얻으려면 데이터 프레임 객체에서 info()
메서드를 호출할 수 있습니다.
students_df.info()

파이썬 사전에서
Python 사전에서 pandas 데이터 프레임을 만들 수도 있습니다.
여기서 data_dict
는 학생 데이터를 포함하는 사전입니다.
- 학생들의 이름이 열쇠입니다.
- 각 값은 각 학생이 1주에서 4주까지 지출한 금액 목록입니다.
data_dict = {} students = ['Amy','Bob','Chris','Dave','Evelyn','Fanny'] for student,student_data in zip(students,data): data_dict[student] = student_data
Python 사전에서 데이터 프레임을 만들려면 아래와 같이 from_dict
를 사용합니다. 첫 번째 인수는 데이터( data_dict
)를 포함하는 사전에 해당합니다. 기본적으로 키는 데이터 프레임의 열 이름 으로 사용됩니다. 키를 행 레이블 로 설정하려면 orient= 'index'
로 설정하십시오.
students_df = pd.DataFrame.from_dict(data_dict,orient='index') print(students_df)

열 이름을 주 번호로 변경하려면 열을 cols
목록으로 설정합니다.

students_df = pd.DataFrame.from_dict(data_dict,orient='index',columns=cols) print(students_df)

Pandas DataFrame으로 CSV 파일 읽기
학생 데이터를 CSV 파일로 사용할 수 있다고 가정합니다. read_csv()
함수를 사용하여 파일에서 pandas 데이터 프레임으로 데이터를 읽을 수 있습니다. pd.read_csv('file-path')
는 일반 구문이며 여기서 file-path
는 CSV 파일의 경로입니다. 사용할 열 이름 목록에 names
매개변수를 설정할 수 있습니다.
students_df = pd.read_csv('/content/students.csv',names=cols)
이제 데이터 프레임을 만드는 방법을 알았으니 행과 열을 선택하는 방법을 알아보겠습니다.
Pandas DataFrame에서 열 선택
데이터 프레임에서 행과 열을 선택하는 데 사용할 수 있는 몇 가지 기본 제공 메서드가 있습니다. 이 자습서에서는 데이터 프레임에서 열, 행 및 행과 열을 모두 선택하는 가장 일반적인 방법을 살펴봅니다.
단일 열 선택
단일 열을 선택하려면 df_name[col_name]
을 사용할 수 있습니다. 여기서 col_name
은 열 이름을 나타내는 문자열입니다.
여기서는 'Week1' 열만 선택합니다.
week1_df = students_df['Week1'] print(week1_df)

여러 열 선택
데이터 프레임에서 여러 열을 선택하려면 선택할 모든 열 이름 목록을 전달합니다.
odd_weeks = students_df[['Week1','Week3']] print(odd_weeks)

이 메서드 외에도 iloc()
및 loc()
메서드를 사용하여 열을 선택할 수도 있습니다. 나중에 예제를 코딩하겠습니다.
Pandas DataFrame에서 행 선택

.iloc() 메서드 사용
iloc()
메서드를 사용하여 행을 선택하려면 모든 행에 해당하는 인덱스를 목록으로 전달합니다.
이 예에서는 홀수 인덱스의 행을 선택합니다.
odd_index_rows = students_df.iloc[[1,3,5]] print(odd_index_rows)

다음으로 인덱스 0에서 2까지의 행을 포함하는 데이터 프레임의 하위 집합을 선택합니다. 끝점 3은 기본적으로 제외됩니다.
slice1 = students_df.iloc[0:3] print(slice1)

.loc() 메서드 사용
loc()
메서드를 사용하여 데이터 프레임의 행을 선택하려면 선택하려는 행에 해당하는 레이블을 지정해야 합니다.
some_rows = students_df.loc[['Bob','Dave','Fanny']] print(some_rows)

데이터 프레임의 행이 기본 범위 0, 1, 2, 최대
numRows
-1을 사용하여 인덱싱되는 경우iloc()
및loc()
을 사용하는 것은 모두 동일합니다.
Pandas DataFrame에서 행과 열 선택
지금까지 pandas 데이터 프레임에서 행 또는 열을 선택하는 방법을 배웠습니다. 그러나 경우에 따라 행과 열 모두 의 하위 집합을 선택해야 할 수도 있습니다. 그래서 어떻게 합니까? 우리가 논의한 iloc()
및 loc()
메서드를 사용할 수 있습니다.
예를 들어 아래 코드 스니펫에서는 인덱스 2와 3에 있는 모든 행과 열을 선택합니다.
subset_df1 = students_df.iloc[:,[2,3]] print(subset_df1)

start:stop
을 사용하면 시작부터 start
까지 슬라이스가 생성되지만 stop
은 포함되지 않습니다. 따라서 시작 값과 중지 값을 모두 무시하면 start
값과 stop
값을 무시하면 조각이 처음부터 시작하여 데이터 프레임의 끝까지 확장되어 모든 행을 선택합니다.
loc()
메서드를 사용할 때 다음과 같이 선택하려는 행과 열의 레이블을 전달해야 합니다.
subset_df2 = students_df.loc[['Amy','Evelyn'],['Week1','Week3']] print(subset_df2)

여기에서 subset_df2
데이터 프레임에는 1주차와 3주차에 대한 Amy와 Evelyn의 레코드가 포함되어 있습니다.
결론
다음은 이 자습서에서 배운 내용에 대한 간단한 검토입니다.
- pandas를 설치한 후 별칭
pd
로 가져올 수 있습니다. pandas 데이터 프레임 객체를 생성하려면pd.DataFrame(data)
생성자를 사용할 수 있습니다. 여기서data
는 N차원 배열 또는 데이터를 포함하는 iterable을 나타냅니다. 선택적 인덱스 및 열 매개 변수를 각각 설정하여 행 및 인덱스와 열 레이블을 지정할 수 있습니다. -
pd.read_csv(path-to-the-file)
를 사용하면 파일 내용을 데이터 프레임으로 읽어들입니다. - 데이터 프레임 개체에서
info()
메서드를 호출하여 열, 누락된 값의 수, 데이터 유형 및 데이터 프레임 크기에 대한 정보를 얻을 수 있습니다. - 단일 열을 선택하려면
df_name[col_name]
을 사용하고 여러 열, 특정 열을 선택하려면df_name[[col1,col2,...,coln]]
을 사용합니다. -
loc()
및iloc()
메서드를 사용하여 열과 행을 선택할 수도 있습니다. -
iloc()
메서드는 선택할 행과 열의 인덱스(또는 인덱스 슬라이스)를 가져오는 반면loc()
메서드는 행과 열 레이블을 가져옵니다.
이 Colab 노트북에서 이 튜토리얼에 사용된 예제를 찾을 수 있습니다.
다음으로 협업 데이터 사이언스 노트북 목록을 확인하세요.