프로그래밍/Pandas

Dataframe

kimble2 2024. 8. 18. 22:37
반응형

 

Pandas의 DataFrame은 데이터 분석에서 가장 많이 사용되는 데이터 구조 중 하나입니다. DataFrame은 2차원 배열과 유사하며, 행과 열로 구성되어 있습니다. 각 열은 Series 객체로 표현되며, 서로 다른 데이터 유형을 가질 수 있습니다.

DataFrame의 주요 특징

  1. 2차원 데이터 구조: DataFrame은 행(row)과 열(column)로 구성된 2차원 데이터 구조입니다.
  2. 라벨된 축: 행과 열에 대해 인덱스와 열 이름을 지정할 수 있어, 데이터에 쉽게 접근하고 조작할 수 있습니다.
  3. 다양한 데이터 유형: 하나의 DataFrame은 다양한 데이터 유형(숫자, 문자열, 부울, 날짜 등)을 포함할 수 있습니다.
  4. 유연한 데이터 처리: DataFrame은 필터링, 집계, 변환, 병합 등 다양한 데이터 처리 작업을 지원합니다.

DataFrame 생성 방법

  1. 리스트나 딕셔너리로부터 생성
import pandas as pd

# 딕셔너리로부터 DataFrame 생성
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'San Francisco', 'Los Angeles']
}
df = pd.DataFrame(data)
print(df)
 

2.리스트의 리스트로부터 생성

# 리스트의 리스트로부터 DataFrame 생성
data = [
    ['Alice', 25, 'New York'],
    ['Bob', 30, 'San Francisco'],
    ['Charlie', 35, 'Los Angeles']
]
columns = ['Name', 'Age', 'City']
df = pd.DataFrame(data, columns=columns)
print(df)
 

3.CSV 파일로부터 생성

# CSV 파일로부터 DataFrame 생성
df = pd.read_csv('data.csv')
print(df)
 

DataFrame의 주요 속성

  1. shape: DataFrame의 행과 열의 개수를 튜플로 반환합니다.
print(df.shape)
 

2.columns: DataFrame의 열 이름을 반환합니다.

print(df.columns)
 

3.index: DataFrame의 행 인덱스를 반환합니다.

print(df.index)
 

4.dtypes: 각 열의 데이터 유형을 반환합니다.

print(df.dtypes)
 

DataFrame의 주요 메서드

  1. head() / tail(): DataFrame의 상위/하위 n개의 행을 반환합니다.
print(df.head(3))  # 상위 3개 행
print(df.tail(2))  # 하위 2개 행
 

info(): DataFrame의 요약 정보를 출력합니다.

df.info()
 

describe(): 수치형 데이터에 대한 기본 통계 정보를 제공합니다.

print(df.describe())
 

sort_values(): 특정 열을 기준으로 DataFrame을 정렬합니다.

sorted_df = df.sort_values(by='Age', ascending=False)
print(sorted_df)
 

iloc[] / loc[]: 행과 열을 인덱스나 라벨로 선택할 수 있습니다.

# 위치 기반 인덱싱
print(df.iloc[0])  # 첫 번째 행

# 라벨 기반 인덱싱
print(df.loc[0])  # 첫 번째 행 (인덱스가 0인 경우)
 

drop(): 특정 행이나 열을 제거합니다.

df_dropped = df.drop(columns=['City'])
print(df_dropped)
 

apply(): 특정 함수나 연산을 DataFrame의 각 요소에 적용합니다.

df['Age_plus_10'] = df['Age'].apply(lambda x: x + 10)
print(df)
 

groupby(): 특정 열을 기준으로 데이터를 그룹화하여 집계할 수 있습니다.

grouped_df = df.groupby('City').mean()
print(grouped_df)
 

merge() / join(): 두 개 이상의 DataFrame을 병합할 수 있습니다.

df1 = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35]
})

df2 = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'David'],
    'City': ['New York', 'San Francisco', 'Miami']
})

merged_df = pd.merge(df1, df2, on='Name', how='inner')
print(merged_df)
 
  • 흰 배경회색 가로줄 배경어두운 배경
  •  
  • 삭제

pivot_table(): 데이터를 피벗 테이블로 변환하여 다차원적인 집계를 할 수 있습니다.

# 피벗 테이블 생성 예시
df = pd.DataFrame({
    'Date': ['2024-01-01', '2024-01-01', '2024-01-02', '2024-01-02'],
    'Product': ['A', 'B', 'A', 'B'],
    'Sales': [10, 20, 15, 25]
})

pivot_df = df.pivot_table(values='Sales', index='Date', columns='Product', aggfunc='sum')
print(pivot_df)
 

 

 

반응형