Pandas Python library
ChatGPTAI
ChatGPT
chatgptai.mobi
Pandas는 Python용 오픈 소스 데이터 분석 및 조작 라이브러리입니다. NumPy 라이브러리 위에 구축되었으며 Python에서 데이터를 조작하고 분석하는 간단하고 효율적인 방법을 제공합니다.
Pandas를 사용하면 CSV, Excel 및 SQL 데이터베이스와 같은 다양한 파일 형식에서 데이터를 쉽게 읽고 데이터에 대한 필터링, 그룹화 및 집계와 같은 작업을 수행할 수 있습니다. Pandas 함수 및 메서드를 사용하여 데이터를 정리하고 전처리할 수도 있습니다.
Pandas는 누락된 데이터, 시계열 데이터 및 범주형 데이터를 처리하기 위한 도구도 제공합니다. 유연하고 효율적인 데이터 선택 및 조작을 허용하는 강력한 인덱싱 시스템이 있습니다.
전반적으로 Pandas는 Python에서 데이터 분석 및 조작에 매우 유용한 라이브러리이며 학계와 산업 모두에서 널리 사용됩니다.
CSV, Excel 및 SQL 데이터베이스에서 데이터를 읽는 방법
Python에서 Pandas를 사용하여 CSV 파일에서 데이터를 읽으려면 함수를 사용할 수 있습니다 read_csv(). 예를 들면 다음과 같습니다.
import pandas as pd
# Read CSV file
data = pd.read_csv('data.csv')
Pandas를 사용하여 Excel 파일에서 데이터를 읽으려면 함수를 사용할 수 있습니다 read_excel(). 예를 들면 다음과 같습니다.
import pandas as pd
# Read Excel file
data = pd.read_excel('data.xlsx')
Pandas를 사용하여 SQL 데이터베이스에서 데이터를 읽으려면 이 함수를 사용할 수 있습니다 read_sql(). 예를 들면 다음과 같습니다.
import pandas as pd
import sqlite3
# Connect to SQL database
conn = sqlite3.connect('example.db')
# Read data from SQL database
data = pd.read_sql('SELECT * FROM my_table', conn)
위의 예에서는 먼저 모듈을 사용하여 SQLite 데이터베이스에 대한 연결을 설정한 sqlite3다음 read_sql()함수를 사용하여 이라는 테이블에서 데이터를 읽습니다 my_table. 함수의 SQL 쿼리를 자신의 쿼리로 바꿀 수 있습니다. MySQL, PostgreSQL 등과 같은 다른 데이터베이스에 연결하려면 적절한 SQL 데이터베이스 드라이버를 설치해야 합니다.
Pandas 라이브러리에 포함된 유용한 기능
Pandas 라이브러리에는 데이터 분석 및 조작에 일반적으로 사용되는 많은 유용한 기능이 포함되어 있습니다. 가장 일반적으로 사용되는 기능은 다음과 같습니다.
- read_csv(): CSV 파일에서 Pandas DataFrame으로 데이터를 읽습니다.
- read_excel(): Excel 파일에서 Pandas DataFrame으로 데이터를 읽습니다.
- read_sql(): SQL 데이터베이스에서 Pandas DataFrame으로 데이터를 읽습니다.
- head(): DataFrame의 처음 n개 행을 반환합니다.
- tail(): DataFrame의 마지막 n개 행을 반환합니다.
- info(): 크기, 데이터 유형 및 메모리 사용량을 포함하여 DataFrame에 대한 정보를 인쇄합니다.
- describe(): 평균, 표준편차, 사분위수와 같은 DataFrame의 요약 통계를 생성합니다.
- groupby(): 데이터를 하나 이상의 변수로 그룹화하고 각 그룹에 함수를 적용합니다.
- merge(): 공통 열 또는 인덱스를 기반으로 두 개 이상의 DataFrame을 하나로 병합합니다.
- pivot_table(): DataFrame의 데이터를 요약하는 스프레드시트 스타일의 피벗 테이블을 만듭니다.
- fillna(): DataFrame에서 누락된 값을 지정된 값 또는 메서드로 채웁니다.
- drop(): DataFrame의 행 또는 열에서 지정된 레이블을 삭제합니다.
- sort_values(): 하나 이상의 열을 기준으로 DataFrame을 정렬합니다.
- set_index(): 하나 이상의 열을 사용하여 DataFrame 인덱스를 설정합니다.
- reset_index(): DataFrame 인덱스를 순차 숫자 인덱스로 재설정합니다.
이들은 Pandas에서 사용할 수 있는 기능 중 일부에 불과하며 더 많은 기능이 있습니다. Pandas는 Python에서 데이터를 효율적으로 조작하고 분석하는 데 도움이 되는 다양한 기능을 갖춘 강력한 라이브러리입니다.
Pandas 라이브러리에 포함된 head() 사용 방법
이 head()함수는 DataFrame의 처음 몇 행을 표시하는 데 사용할 수 있는 Pandas 메서드입니다. 기본적으로 head()DataFrame의 처음 5개 행을 표시하지만 함수에 정수 인수를 전달하여 표시할 행 수를 지정할 수 있습니다.
다음은 함수를 사용하는 방법의 예입니다 head().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Display the first 5 rows of the DataFrame
print(df.head())
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 head()DataFrame의 처음 5개 행을 표시합니다.
head()함수에 정수 인수를 전달하여 특정 수의 행을 표시 할 수도 있습니다 . 예를 들어 DataFrame의 처음 10개 행을 표시하려면 다음을 수행할 수 있습니다.
# Display the first 10 rows of the DataFrame
print(df.head(10))
이렇게 하면 기본 5개 행 대신 DataFrame의 처음 10개 행이 표시됩니다.
Pandas 라이브러리에 포함된 tail() 사용 방법
이 tail()함수는 DataFrame의 마지막 몇 행을 표시하는 데 사용할 수 있는 Pandas 메서드입니다. 기본적으로 tail()DataFrame의 마지막 5개 행을 표시하지만 함수에 정수 인수를 전달하여 표시할 행 수를 지정할 수 있습니다.
다음은 함수를 사용하는 방법의 예입니다 tail().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Display the last 5 rows of the DataFrame
print(df.tail())
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 tail()DataFrame의 마지막 5개 행을 표시합니다.
tail()함수에 정수 인수를 전달하여 특정 수의 행을 표시 할 수도 있습니다 . 예를 들어 DataFrame의 마지막 10개 행을 표시하려면 다음을 수행할 수 있습니다.
# Display the last 10 rows of the DataFrame
print(df.tail(10))
이렇게 하면 기본 5개 행 대신 DataFrame의 마지막 10개 행이 표시됩니다.
Pandas 라이브러리에 포함된 info() 사용 방법
이 info()함수는 크기, 데이터 유형 및 메모리 사용량을 포함하여 DataFrame의 요약을 제공하는 Pandas 메서드입니다. 다음은 함수를 사용하는 방법의 예입니다 info().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Display information about the DataFrame
print(df.info())
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 info()DataFrame에 대한 정보를 표시합니다.
이 info()함수는 DataFrame에 대한 다음 정보를 제공합니다.
- 행과 열의 수
- DataFrame의 총 메모리 사용량
- 각 열의 데이터 유형
- 각 열의 null이 아닌 값의 수
- 각 열의 메모리 사용량
이 info()기능은 DataFrame에 대한 빠른 개요를 얻고 누락된 값이나 잘못된 데이터 유형과 같은 잠재적인 문제를 식별하는 데 유용합니다.
Pandas 라이브러리에 포함된 describe() 사용 방법
이 describe()함수는 평균, 표준 편차 및 사분위수와 같은 DataFrame의 요약 통계를 생성하는 Pandas 방법입니다. 다음은 함수를 사용하는 방법의 예입니다 describe().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Generate summary statistics of the DataFrame
print(df.describe())
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 describe()DataFrame의 요약 통계를 생성합니다.
이 describe()함수는 DataFrame의 각 열에 대해 다음 통계를 제공합니다.
- 개수: 열에 있는 null이 아닌 값의 수
- 평균: 열의 평균
- std: 컬럼의 표준편차
- min: 컬럼의 최소값
- 25%: 열의 25번째 백분위수
- 50%: 열의 50번째 백분위수(중앙값)
- 75%: 열의 75번째 백분위수
- max: 열의 최대값
이 describe()기능은 DataFrame의 데이터 분포에 대한 빠른 개요를 얻고 잠재적 이상치 또는 비정상적인 값을 식별하는 데 유용합니다. 또한 누락된 값이나 잘못된 데이터 유형과 같은 문제를 식별하는 데 도움이 될 수 있습니다.
Pandas 라이브러리에 포함된 groupby() 사용 방법
이 groupby()함수는 DataFrame을 하나 이상의 열로 그룹화하고 각 그룹에서 집계 함수를 수행할 수 있는 Pandas 메서드입니다. 다음은 함수를 사용하는 방법의 예입니다 groupby().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Group the DataFrame by the 'category' column and calculate the mean of each group
grouped = df.groupby('category').mean()
# Display the resulting DataFrame
print(grouped)
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 groupby()DataFrame을 '카테고리' 열로 그룹화합니다. 그런 다음 함수를 사용하여 mean()각 그룹의 평균을 계산합니다.
결과 DataFrame은 각 그룹에 대한 각 열의 평균을 갖습니다. 'category' 열은 결과 DataFrame의 인덱스로 사용됩니다.
열 이름 목록을 함수에 전달하여 DataFrame을 여러 열로 그룹화할 수도 있습니다 groupby(). 예를 들어 '카테고리'와 '하위 카테고리'로 DataFrame을 그룹화하려면 다음을 수행할 수 있습니다.
# Group the DataFrame by the 'category' and 'subcategory' columns and calculate the mean of each group
grouped = df.groupby(['category', 'subcategory']).mean()
# Display the resulting DataFrame
print(grouped)
이 예에서 결과 DataFrame에는 '카테고리' 및 '하위 카테고리'가 있는 다중 레벨 인덱스가 있습니다. 각 열의 평균은 '범주'와 '하위 범주'의 각 조합에 대해 계산됩니다.
Pandas 라이브러리에 포함된 merge() 사용 방법
이 merge()함수는 하나 이상의 공통 열을 기반으로 두 개의 DataFrame을 병합할 수 있는 Pandas 메서드입니다. 다음은 함수를 사용하는 방법의 예입니다 merge().
import pandas as pd
# Read data from two CSV files
orders = pd.read_csv('orders.csv')
customers = pd.read_csv('customers.csv')
# Merge the two DataFrames based on the 'customer_id' column
merged = pd.merge(orders, customers, on='customer_id')
# Display the resulting DataFrame
print(merged)
위의 예에서는 먼저 read_csv()함수를 사용하여 두 개의 CSV 파일에서 별도의 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 merge()'customer_id' 열을 기반으로 두 DataFrame을 병합합니다.
결과 DataFrame에는 'customer_id' 열과 일치하는 행과 함께 두 DataFrame의 모든 열이 포함됩니다. 두 DataFrame에 동일한 이름의 열이 있는 경우 merge()함수는 열 이름에 접미사를 추가하여 구분합니다.
열 이름 목록을 매개 변수에 전달하여 여러 열을 기반으로 DataFrame을 병합할 수도 있습니다 on. 예를 들어 'customer_id'와 'order_date'를 기반으로 DataFrame을 병합하려면 다음을 수행할 수 있습니다.
# Merge the two DataFrames based on the 'customer_id' and 'order_date' columns
merged = pd.merge(orders, customers, on=['customer_id', 'order_date'])
# Display the resulting DataFrame
print(merged)
이 예에서 결과 DataFrame에는 'customer_id' 및 'order_date' 모두에서 일치하는 행이 있습니다.
Pandas 라이브러리에 포함된 pivot_table() 사용 방법
이 pivot_table()함수는 DataFrame에서 데이터를 집계하고 그룹화하여 요약 테이블을 만들 수 있는 Pandas 메서드입니다. 다음은 함수를 사용하는 방법의 예입니다 pivot_table().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Create a pivot table that shows the mean value of 'sales' for each 'category'
pivot = df.pivot_table(index='category', values='sales', aggfunc='mean')
# Display the resulting pivot table
print(pivot)
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 이 pivot_table()함수를 사용하여 각 '카테고리'에 대한 '매출'의 평균값을 표시하는 피벗 테이블을 만듭니다. 매개 index변수는 피벗 테이블의 인덱스로 사용할 열을 지정하고 values매개변수는 집계할 열을 지정하며 aggfunc매개변수는 사용할 집계 함수를 지정합니다.
결과 피벗 테이블에는 '카테고리' 열이 인덱스로 포함되며 각 '카테고리'에 대한 '매출'의 평균값이 표시됩니다.
열 이름 목록을 매개변수에 전달하여 여러 수준의 집계를 표시하는 피벗 테이블을 만들 수도 있습니다 index. 예를 들어 '카테고리'와 '지역'의 각 조합에 대한 '매출'의 평균값을 표시하는 피벗 테이블을 만들려면 다음을 수행할 수 있습니다.
# Create a pivot table that shows the mean value of 'sales' for each combination of 'category' and 'region'
pivot = df.pivot_table(index=['category', 'region'], values='sales', aggfunc='mean')
# Display the resulting pivot table
print(pivot)
이 예에서 결과 피벗 테이블에는 '카테고리' 및 '지역'이 포함된 다중 수준 인덱스가 있습니다. '판매'의 평균값은 '카테고리'와 '지역'의 각 조합에 대해 계산됩니다.
Pandas 라이브러리에 포함된 drop() 사용 방법
이 drop()함수는 DataFrame에서 하나 이상의 행 또는 열을 제거할 수 있는 Pandas 메서드입니다. 다음은 함수를 사용하는 방법의 예입니다 drop().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Drop the 'quantity' column from the DataFrame
df = df.drop('quantity', axis=1)
# Drop the first row from the DataFrame
df = df.drop(0)
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 drop()를 지정하여 DataFrame에서 'quantity' 열을 제거합니다 axis=1. 결과 DataFrame에는 '수량'을 제외한 모든 열이 있습니다.
또한 인수로 drop()전달하여 DataFrame에서 첫 번째 행을 제거하는 함수를 사용합니다 . 0이렇게 하면 인덱스가 있는 행이 제거됩니다 0.
인덱스 목록이나 열 이름을 함수에 전달하여 여러 행이나 열을 제거할 수도 있습니다 drop(). 예를 들어 DataFrame에서 첫 번째 행과 마지막 행을 제거하려면 다음을 수행할 수 있습니다.
# Drop the first and last rows from the DataFrame
df = df.drop([0, len(df)-1])
이 예제에서는 첫 번째 행과 마지막 행의 인덱스가 포함된 목록을 함수에 전달합니다 drop(). 0이렇게 하면 인덱스 및 가 있는 행이 제거됩니다 len(df)-1.
Pandas 라이브러리에 포함된 sort_values() 사용 방법
이 sort_values()함수는 DataFrame을 하나 이상의 열로 정렬할 수 있는 Pandas 메서드입니다. 다음은 함수를 사용하는 방법의 예입니다 sort_values().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Sort the DataFrame by the 'sales' column in descending order
df = df.sort_values('sales', ascending=False)
# Sort the DataFrame by the 'category' and 'sales' columns
df = df.sort_values(['category', 'sales'])
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 sort_values()DataFrame을 'sales' 열을 기준으로 내림차순으로 정렬합니다. ascending=False내림차순으로 정렬하도록 전달합니다 .
또한 sort_values()함수를 사용하여 '카테고리' 및 '판매' 열을 기준으로 DataFrame을 정렬합니다. 두 열을 오름차순으로 정렬하기 위해 열 이름이 포함된 목록을 전달합니다.
튜플 목록을 함수에 전달하여 정렬 방향이 다른 여러 열을 기준으로 정렬할 수도 있습니다 sort_values(). 각 튜플에는 열 이름과 정렬 방향이 포함됩니다. 예를 들어 '카테고리' 열을 오름차순으로, '판매' 열을 내림차순으로 DataFrame을 정렬하려면 다음을 수행할 수 있습니다.
# Sort the DataFrame by the 'category' column in ascending order and the 'sales' column in descending order
df = df.sort_values([('category', 'asc'), ('sales', 'desc')])
이 예제에서는 튜플 목록을 함수에 전달합니다 sort_values(). 첫 번째 튜플은 'category' 열을 오름차순( 'asc')으로 정렬하도록 지정합니다. 두 번째 튜플은 'sales' 열을 내림차순( 'desc')으로 정렬하도록 지정합니다.
Pandas 라이브러리에 포함된 set_index() 사용 방법
이 set_index()함수는 하나 이상의 열을 DataFrame의 인덱스로 설정할 수 있는 Pandas 메서드입니다. 다음은 함수를 사용하는 방법의 예입니다 set_index().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Set the 'product_id' column as the index of the DataFrame
df = df.set_index('product_id')
# Set the 'category' and 'product_name' columns as the index of the DataFrame
df = df.set_index(['category', 'product_name'])
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 set_index()'product_id' 열을 DataFrame의 인덱스로 설정합니다.
또한 set_index()함수를 사용하여 'category' 및 'product_name' 열을 모두 DataFrame의 인덱스로 설정합니다. 두 열에서 설정할 열 이름이 포함된 목록을 전달합니다.
기본적으로 set_index()함수는 인덱스로 설정한 열을 제거합니다. drop=False그러나 함수에 전달하여 열을 유지할 수 있습니다 . 예를 들어 'product_id' 열을 DataFrame의 인덱스로 설정하고 열을 유지하려면 다음과 같이 하면 됩니다.
# Set the 'product_id' column as the index of the DataFrame and keep the column
df = df.set_index('product_id', drop=False)
이 예에서는 DataFrame의 'product_id' 열을 유지하기 위해 함수 drop=False에 전달합니다 .set_index()
Pandas 라이브러리에 포함된 reset_index() 사용 방법
이 reset_index()함수는 DataFrame의 인덱스를 재설정할 수 있는 Pandas 메서드입니다. 다음은 함수를 사용하는 방법의 예입니다 reset_index().
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Set the 'product_id' column as the index of the DataFrame
df = df.set_index('product_id')
# Reset the index of the DataFrame
df = df.reset_index()
# Reset the index of the DataFrame and drop the old index
df = df.reset_index(drop=True)
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 set_index()'product_id' 열을 DataFrame의 인덱스로 설정합니다.
또한 이 reset_index()함수를 사용하여 DataFrame의 인덱스를 재설정합니다. 이렇게 하면 인덱스가 다시 열로 바뀌고 새 기본 인덱스가 생성됩니다.
또한 이 reset_index()함수를 사용하여 DataFrame의 인덱스를 재설정하고 이전 인덱스를 삭제할 수 있습니다. drop=True함수에 전달합니다 . 이렇게 하면 새 기본 인덱스가 생성되고 이전 인덱스 열이 삭제됩니다.
reset_index()매개 변수와 함께 함수를 사용하여 level다중 인덱스 DataFrame의 인덱스를 재설정 할 수도 있습니다 . 예를 들어 다중 인덱스 DataFrame의 두 번째 수준을 재설정하려면 다음을 수행할 수 있습니다.
# Read data from a CSV file and set a multi-index on 'category' and 'product_name'
df = pd.read_csv('data.csv').set_index(['category', 'product_name'])
# Reset the second level of the index
df = df.reset_index(level=1)
이 예제에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 set_index()'category' 및 'product_name' 열에 다중 인덱스를 설정합니다.
그런 다음 매개 변수가 로 설정된 reset_index()함수를 사용하여 'product_name' 열인 인덱스의 두 번째 수준을 재설정합니다. 이렇게 하면 'product_name' 인덱스 수준이 다시 열로 바뀌고 DataFrame에 대한 새 기본 인덱스가 생성됩니다.level1
Pandas 라이브러리를 사용하여 데이터를 필터링하는 방법
유지할 행과 삭제할 행을 지정하는 부울 마스크를 생성하는 부울 인덱싱을 사용하여 Pandas DataFrame에서 데이터를 필터링할 수 있습니다.
다음은 Pandas DataFrame에서 데이터를 필터링하는 방법의 예입니다.
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Filter rows where 'price' is greater than 100
filtered_df = df[df['price'] > 100]
# Filter rows where 'category' is either 'electronics' or 'furniture'
filtered_df = df[df['category'].isin(['electronics', 'furniture'])]
# Filter rows where 'price' is greater than 100 and 'category' is 'electronics'
filtered_df = df[(df['price'] > 100) & (df['category'] == 'electronics')]
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다.
그런 다음 부울 인덱싱을 사용하여 '가격' 열이 100보다 큰 행을 필터링합니다. 표현식을 사용하여 부울 마스크를 생성 df['price'] > 100하고 이를 사용하여 이 조건을 충족하는 행을 선택합니다.
또한 부울 인덱싱을 사용하여 '카테고리' 열이 '전자제품' 또는 '가구'인 행을 필터링합니다. 메서드 를 사용하여 부울 마스크를 만들고 isin()이 조건을 만족하는 행을 선택하는 데 사용합니다.
마지막으로 부울 연산자를 사용하여 여러 조건을 결합하여 'price' 열이 100보다 크고 'category' 열이 'electronics'인 행을 필터링합니다. 연산자를 사용하여 &두 조건을 결합합니다.
query()DataFrame의 메서드를 사용하여 부울 식을 기반으로 행을 필터링할 수도 있습니다 . 예를 들어 메서드를 사용하여 '가격' 열이 100보다 큰 행을 필터링하려면 query()다음을 수행할 수 있습니다.
# Filter rows where 'price' is greater than 100 using the 'query()' method
filtered_df = df.query('price > 100')
이 예에서는 메서드를 사용하여 query()'가격' 열이 100보다 큰 행을 필터링합니다. 부울 표현식이 포함된 문자열을 메서드에 전달합니다 query().
Pandas 라이브러리를 사용하여 데이터를 그룹화하는 방법
groupby()Pandas의 함수를 사용하여 DataFrame에 있는 하나 이상의 열을 기반으로 데이터를 그룹화 할 수 있습니다 . 이 함수는 그룹화된 데이터에서 집계 함수를 수행하는 데 사용할 수 있는 개체를 groupby()반환합니다 .DataFrameGroupBy
다음은 Pandas DataFrame에서 데이터를 그룹화하는 방법의 예입니다.
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Group data by 'category' column and calculate the mean price for each group
grouped_df = df.groupby('category')['price'].mean()
# Group data by 'category' and 'color' columns and calculate the sum of the 'quantity' column for each group
grouped_df = df.groupby(['category', 'color'])['quantity'].sum()
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다.
그런 다음 함수를 사용하여 groupby()'카테고리' 열별로 데이터를 그룹화하고 각 그룹의 평균 가격을 계산합니다. '범주' 열을 그룹화 열로 지정하고 '가격' 열을 평균을 계산하려는 열로 지정합니다.
또한 함수를 사용하여 groupby()'카테고리' 및 '색상' 열별로 데이터를 그룹화하고 각 그룹에 대한 '수량' 열의 합계를 계산합니다. 'category' 및 'color' 열을 그룹화 열로 지정하고 'quantity' 열을 합계를 계산하려는 열로 지정합니다.
sum()그룹화된 데이터에 대해 , count(), max(), min()및 와 같은 다른 집계 기능을 수행할 수 있습니다 std(). 예를 들어 각 그룹의 총 수량을 계산하려면 sum()다음과 같이 함수를 사용할 수 있습니다.
# Group data by 'category' column and calculate the sum of the 'quantity' column for each group
grouped_df = df.groupby('category')['quantity'].sum()
이 예에서는 데이터를 '범주' 열로 그룹화하고 각 그룹에 대한 '수량' 열의 합계를 계산합니다.
Pandas 라이브러리를 사용하여 데이터를 집계하는 방법
Pandas의 함수를 사용하여 groupby()하나 이상의 열로 데이터를 그룹화한 다음 그룹화된 데이터에서 집계 함수를 수행할 수 있습니다.
다음은 Pandas DataFrame에서 데이터를 집계하는 방법의 예입니다.
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Group data by 'category' column and calculate the mean price, sum of quantity, and count of rows for each group
grouped_df = df.groupby('category').agg({'price': 'mean', 'quantity': 'sum', 'id': 'count'})
# Rename the columns in the resulting DataFrame
grouped_df = grouped_df.rename(columns={'price': 'mean_price', 'quantity': 'total_quantity', 'id': 'row_count'})
위의 예에서는 먼저 read_csv()함수를 사용하여 CSV 파일에서 DataFrame으로 데이터를 읽습니다.
그런 다음 함수를 사용하여 groupby()'카테고리' 열별로 데이터를 그룹화하고 각 그룹의 평균 가격, 수량 합계 및 행 수를 계산합니다. '범주' 열을 그룹화 열로 지정하고 사전을 사용하여 각 열에서 수행하려는 집계 함수를 지정합니다. 이 경우 'price' 열의 평균, 'quantity' 열의 합, 'id' 열의 개수를 계산합니다.
그런 다음 함수를 사용하여 그룹화된 DataFrame에서 결과 열의 이름을 바꿉니다 rename().
sum()그룹화된 데이터에 대해 , count(), max(), min()및 와 같은 다른 집계 기능을 수행할 수 있습니다 std(). 함수의 사전에 함수 목록을 전달하여 각 열에 대해 여러 집계 함수를 지정할 수도 있습니다 agg(). 예를 들어 각 그룹에 대한 '가격' 열의 평균과 표준 편차를 모두 계산하려면 다음 코드를 사용할 수 있습니다.
# Group data by 'category' column and calculate the mean and standard deviation of the 'price' column for each group
grouped_df = df.groupby('category')['price'].agg(['mean', 'std'])
이 예에서는 데이터를 '범주' 열로 그룹화하고 각 그룹에 대한 '가격' 열의 평균과 표준편차를 모두 계산합니다. 평균 및 표준 편차를 계산하려는 열로 '가격' 열을 지정하고 함수 목록을 함수에 전달합니다 agg(). 결과 DataFrame에는 'mean' 및 'std'라는 두 개의 열이 있으며 각 열에는 각 그룹에 해당하는 값이 있습니다.
Pandas 기능 및 방법을 사용하여 데이터를 정리하는 방법
Pandas 라이브러리는 데이터를 정리하는 여러 기능과 방법을 제공합니다. 다음은 Pandas를 사용하여 데이터를 정리하는 몇 가지 일반적인 방법입니다.
- 누락된 값 처리: isnull(), notnull(), fillna()및 dropna()함수를 사용하여 데이터의 누락된 값을 처리할 수 있습니다. 및 함수는 누락된 값을 나타내는 부울 마스크를 반환하며 함수를 사용하여 isnull()누락 된 값을 지정된 값으로 채우거나 함수를 사용하여 누락된 값이 있는 행 또는 열을 제거할 수 있습니다.notnull()fillna()dropna()
- 중복 제거: duplicated()및 drop_duplicates()함수를 사용하여 데이터에서 중복 행을 식별하고 제거할 수 있습니다. 이 duplicated()함수는 중복된 행을 나타내는 부울 마스크를 반환하며 drop_duplicates()함수를 사용하여 하나 이상의 열을 기반으로 중복 행을 제거할 수 있습니다.
- 열 이름 바꾸기: 이 rename()방법을 사용하여 데이터의 열 이름을 바꿀 수 있습니다. 이 rename()메서드는 이전 열 이름을 새 열 이름에 매핑하는 사전을 사용합니다.
- 데이터 유형 변경: 이 astype()방법을 사용하여 데이터 열의 데이터 유형을 변경할 수 있습니다. 이 astype()메서드는 문자열 또는 Pandas 데이터 형식을 인수로 사용하고 열을 지정된 형식으로 변환합니다.
- 이상값 처리: 이 quantile()방법을 사용하여 데이터의 분위수를 계산하고 잠재적인 이상값을 식별할 수 있습니다. 그런 다음 replace()함수를 사용하여 이상값을 지정된 값으로 바꾸거나 drop()함수를 사용하여 이상값이 있는 행을 제거할 수 있습니다.
다음은 이러한 함수와 메서드를 사용하여 Pandas DataFrame에서 데이터를 정리하는 방법의 예입니다.
import pandas as pd
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Handle missing values
df.dropna(inplace=True)
# Remove duplicates
df.drop_duplicates(subset=['column1', 'column2'], inplace=True)
# Rename columns
df.rename(columns={'old_name': 'new_name'}, inplace=True)
# Change data types
df['column1'] = df['column1'].astype(float)
# Handle outliers
q_low = df['column1'].quantile(0.05)
q_high = df['column1'].quantile(0.95)
df['column1'] = df['column1'].apply(lambda x: q_low if x < q_low else q_high if x > q_high else x)
이 예에서는 먼저 CSV 파일에서 Pandas DataFrame으로 데이터를 읽습니다. 그런 다음 dropna()누락된 값이 있는 행을 제거하는 함수, drop_duplicates()'column1' 및 'column2'의 값을 기반으로 중복 행을 제거하는 함수, rename()'old_name' 열의 이름을 'new_name'으로 바꾸는 메서드 astype(), 'column1' 열을 float 데이터 유형으로 변환하고 quantile()'column1' 열의 분위수를 계산하는 방법입니다. 그런 다음 람다 함수와 apply()메서드를 사용하여 'column1' 열의 이상값을 5번째 및 95번째 백분위수로 바꿉니다.
Pandas 함수 및 메서드를 사용하여 데이터를 사전 처리하는 방법
데이터 전처리는 데이터 분석 및 기계 학습에서 중요한 단계입니다. Pandas는 데이터를 사전 처리하는 데 사용할 수 있는 여러 기능과 메서드를 제공합니다. 다음은 Pandas를 사용하는 몇 가지 일반적인 전처리 기술입니다.
- 조정 및 정규화: 모듈 의 StandardScaler또는 클래스를 사용하여 데이터를 조정하고 정규화 할 수 있습니다. 이러한 스케일러는 Pandas DataFrames와 함께 사용하여 열을 따라 데이터를 스케일링할 수 있습니다.MinMaxScalersklearn.preprocessing
- 범주형 데이터 인코딩: 함수를 사용하여 get_dummies()범주형 데이터를 숫자 데이터로 변환할 수 있습니다. 이 함수는 각 범주 값에 대해 새 열을 만들고 이진 값을 할당하여 값이 있는지 여부를 나타냅니다.
- 비닝: cut()함수를 사용하여 연속 데이터를 불연속 범주로 비닝할 수 있습니다. 이 함수는 Pandas 시리즈를 가져와 지정된 수의 범주로 분류합니다.
- 기능 엔지니어링: Pandas를 사용하여 기존 기능에서 새 기능을 엔지니어링할 수 있습니다. 예를 들어 기존 기능에서 정보를 결합하거나 추출하여 새 기능을 만들 수 있습니다. 이 apply()메서드는 DataFrame의 열에 사용자 지정 함수를 적용하는 데 사용할 수 있습니다.
다음은 Pandas 함수 및 메서드를 사용하여 데이터를 사전 처리하는 방법의 예입니다.
import pandas as pd
from sklearn.preprocessing import StandardScaler, MinMaxScaler
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Scale and normalize data
scaler = StandardScaler()
df_scaled = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# Encode categorical data
df_encoded = pd.get_dummies(df, columns=['categorical_column'])
# Bin data
df['binned_column'] = pd.cut(df['numeric_column'], bins=5, labels=False)
# Feature engineering
def custom_func(x):
# some feature engineering code here
return x
df['new_feature'] = df['existing_feature'].apply(custom_func)
이 예에서는 먼저 CSV 파일에서 Pandas DataFrame으로 데이터를 읽습니다. 그런 다음 StandardScaler클래스를 사용하여 데이터를 확장하고 정규화하고, get_dummies()범주형 데이터를 인코딩하는 함수, cut()'numeric_column'을 5개의 빈으로 비닝하는 함수, apply()사용자 지정 함수를 사용하여 새 기능을 만드는 메서드를 사용합니다. 마지막으로 전처리된 데이터를 새 DataFrame에 할당합니다.
Pandas 함수 및 메서드를 사용하여 누락된 데이터를 처리하는 방법
누락된 데이터 처리는 데이터 정리 및 전처리의 중요한 부분입니다. Pandas는 누락된 데이터를 처리하기 위한 몇 가지 기능과 방법을 제공합니다.
- isna()및 notna(): 이 함수는 누락된 값(NaN)과 누락된 값을 나타내는 부울 마스크를 반환합니다.
- fillna(): 이 함수는 DataFrame에서 누락된 값을 채우는 데 사용할 수 있습니다. 열의 평균 또는 중앙값과 같은 지정된 값으로 누락된 값을 채울 수 있습니다.
- dropna(): 이 함수는 누락된 값이 포함된 행 또는 열을 삭제합니다.
- interpolate(): 이 함수는 보간을 사용하여 누락된 값을 채웁니다.
다음은 Pandas 함수 및 메서드를 사용하여 누락된 데이터를 처리하는 방법의 예입니다.
import pandas as pd
import numpy as np
# Read data from a CSV file
df = pd.read_csv('data.csv')
# Check for missing values
print(df.isna().sum())
# Fill missing values with the mean
df.fillna(df.mean(), inplace=True)
# Drop rows with missing values
df.dropna(inplace=True)
# Fill missing values using interpolation
df.interpolate(inplace=True)
이 예에서는 먼저 CSV 파일에서 Pandas DataFrame으로 데이터를 읽습니다. 그런 다음 함수를 사용하여 isna()DataFrame에서 누락된 값을 확인합니다. 함수 를 사용하여 누락된 값을 평균으로 채우고 함수 fillna()를 사용하여 누락된 값이 있는 행을 삭제 dropna()하고 함수를 사용하여 보간을 사용하여 누락된 값을 채웁니다 interpolate(). 마지막으로 정리 및 전처리된 데이터를 DataFrame 에 할당합니다 df.
Pandas 함수 및 메서드를 사용하여 시계열을 처리하는 방법
Pandas는 시계열 데이터를 처리하기 위한 몇 가지 기능과 방법을 제공합니다.
- to_datetime(): 이 함수는 문자열 또는 숫자 날짜 및 시간 표현을 datetime객체로 변환합니다.
- resample(): 이 함수는 시계열 데이터를 다시 샘플링하는 데 사용됩니다. 데이터를 업샘플링하거나 다운샘플링하는 데 사용할 수 있습니다.
- rolling(): 이 함수는 시계열 데이터에 대한 롤링 윈도우 계산을 수행하는 데 사용됩니다.
- shift(): 이 함수는 DataFrame의 시간 인덱스를 지정된 기간만큼 이동하는 데 사용됩니다.
- diff(): 이 함수는 시계열에서 연속된 값의 차이를 계산하는 데 사용됩니다.
- tz_localize()및 tz_convert(): 이 함수는 시계열 데이터에서 시간대를 처리하는 데 사용됩니다.
다음은 Pandas 함수 및 메서드를 사용하여 시계열 데이터를 처리하는 방법의 예입니다.
import pandas as pd
# Read data from a CSV file and set the date column as the index
df = pd.read_csv('data.csv', index_col='date', parse_dates=True)
# Resample the data to a daily frequency
df_daily = df.resample('D').sum()
# Calculate the rolling mean over a 7-day window
df_rolling = df_daily.rolling(window=7).mean()
# Shift the data by 1 day
df_shifted = df_rolling.shift(periods=1)
# Calculate the difference between consecutive values
df_diff = df_rolling.diff()
# Localize the time zone to US/Eastern and convert it to UTC
df_tz = df_rolling.tz_localize('US/Eastern').tz_convert('UTC')
index_col이 예제에서는 먼저 CSV 파일에서 데이터를 읽고 함수 의 매개 변수를 사용하여 날짜 열을 인덱스로 설정합니다 read_csv(). 그런 다음 함수를 사용하여 resample()데이터를 일일 빈도로 리샘플링합니다. 함수 를 사용하여 7일 창에 대한 롤링 평균을 계산하고 함수 rolling()를 사용하여 데이터를 1일 이동합니다 shift(). 또한 함수를 사용하여 연속 값 간의 차이를 계산합니다 diff(). tz_localize()마지막으로 및 함수를 사용하여 tz_convert()시계열 데이터의 시간대를 처리합니다.
Pandas 함수 및 메서드를 사용하여 범주형 데이터를 처리하는 방법
Pandas는 범주형 데이터를 처리하기 위한 여러 기능과 방법을 제공합니다.
- astype(): 컬럼을 다른 데이터 타입으로 변환할 때 사용하는 함수입니다. 범주 열을 문자열 또는 숫자 열로 변환하는 데 사용할 수 있습니다.
- unique(): 이 함수는 범주 열에서 고유한 값의 배열을 반환합니다.
- value_counts(): 이 함수는 범주 열의 고유 값 개수를 포함하는 시리즈를 반환합니다.
- groupby(): 이 기능은 하나 이상의 범주 열로 데이터를 그룹화하는 데 사용됩니다.
- crosstab(): 이 기능은 둘 이상의 범주 열의 빈도 테이블을 만드는 데 사용됩니다.
- get_dummies(): 이 함수는 범주형 열에서 더미 변수를 생성하는 데 사용됩니다.
다음은 Pandas 함수 및 메서드를 사용하여 범주형 데이터를 처리하는 방법의 예입니다.
import pandas as pd
# Create a DataFrame with categorical columns
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'gender': ['F', 'M', 'M', 'M', 'F'],
'city': ['New York', 'Los Angeles', 'Chicago', 'New York', 'Chicago']})
# Convert the 'gender' column to a categorical column
df['gender'] = df['gender'].astype('category')
# Get the unique values in the 'city' column
cities = df['city'].unique()
# Get the frequency of each value in the 'city' column
city_counts = df['city'].value_counts()
# Group the data by the 'gender' column and get the count of each group
gender_counts = df.groupby('gender').size()
# Create a frequency table of the 'gender' and 'city' columns
gender_city_table = pd.crosstab(df['gender'], df['city'])
# Create dummy variables from the 'city' column
city_dummies = pd.get_dummies(df['city'])
이 예에서는 '이름', '성별' 및 '도시'라는 범주형 열이 있는 DataFrame을 만듭니다. 함수 를 사용하여 'gender' 열을 범주형 열로 변환합니다 astype(). unique()및 함수를 사용하여 value_counts()'도시' 열에 있는 각 값의 고유한 값과 빈도를 가져옵니다. 함수를 사용하여 '성별' 열별로 데이터를 그룹화 groupby()하고 각 그룹의 개수를 가져옵니다. 함수를 사용하여 'gender' 및 'city' 열의 빈도 테이블을 만듭니다 crosstab(). 마지막으로 함수를 사용하여 'city' 열에서 더미 변수를 만듭니다 get_dummies().
Pandas 라이브러리에서 유연하고 효율적인 데이터 선택 및 조작을 가능하게 하는 강력한 인덱싱 시스템
Pandas 라이브러리에서 유연하고 효율적인 데이터 선택 및 조작을 가능하게 하는 강력한 인덱싱 시스템을 "DataFrame 인덱싱 및 선택" 시스템이라고 합니다. 이를 통해 사용자는 다양한 조건에 따라 DataFrame에서 데이터 하위 집합을 선택, 필터링 및 조작할 수 있습니다.
Pandas의 인덱싱 시스템에는 DataFrame에서 데이터를 선택하고 조작하는 데 사용할 수 있는 여러 메서드와 속성이 포함되어 있습니다. 이러한 메서드 및 특성에는 다음이 포함됩니다.
- 대괄호( [])를 사용한 인덱싱: DataFrame에서 데이터를 선택하는 가장 일반적인 방법입니다. 사용자는 레이블이나 위치에 따라 특정 열이나 행을 선택할 수 있습니다.
- .loc[]인덱서: 이 인덱서는 레이블을 기반으로 행과 열을 선택하는 데 사용됩니다.
- .iloc[]인덱서: 이 인덱서는 정수 위치를 기준으로 행과 열을 선택하는 데 사용됩니다.
- 부울 인덱싱: 이 방법은 True 또는 False로 평가되는 조건에 따라 행을 선택하는 데 사용됩니다.
- .query()방법: 이 방법은 쿼리 식을 기반으로 행을 선택하는 데 사용됩니다.
- 속성 액세스: 이 방법은 이름을 기준으로 열을 선택하는 데 사용됩니다.
- 체인 인덱싱: 이 방법은 단일 작업에서 여러 인덱싱 방법을 적용하여 데이터의 하위 집합을 선택하는 데 사용됩니다.
Pandas의 인덱싱 시스템을 사용하여 사용자는 특정 조건에 따라 행 필터링, 특정 열 선택, 데이터 하위 집합에 대한 통계 계산, 여러 소스의 데이터 병합을 포함하여 광범위한 데이터 선택 및 조작 작업을 수행할 수 있습니다. 인덱싱 시스템은 Pandas를 데이터 분석 및 조작을 위한 강력한 도구로 만드는 핵심 기능 중 하나입니다.