Pandas의 DataFrame은 데이터 분석에서 가장 많이 사용되는 데이터 구조 중 하나입니다. DataFrame은 2차원 배열과 유사하며, 행과 열로 구성되어 있습니다. 각 열은 Series 객체로 표현되며, 서로 다른 데이터 유형을 가질 수 있습니다.
DataFrame의 주요 특징
- 2차원 데이터 구조: DataFrame은 행(row)과 열(column)로 구성된 2차원 데이터 구조입니다.
- 라벨된 축: 행과 열에 대해 인덱스와 열 이름을 지정할 수 있어, 데이터에 쉽게 접근하고 조작할 수 있습니다.
- 다양한 데이터 유형: 하나의 DataFrame은 다양한 데이터 유형(숫자, 문자열, 부울, 날짜 등)을 포함할 수 있습니다.
- 유연한 데이터 처리: DataFrame은 필터링, 집계, 변환, 병합 등 다양한 데이터 처리 작업을 지원합니다.
DataFrame 생성 방법
- 리스트나 딕셔너리로부터 생성
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의 주요 속성
- shape: DataFrame의 행과 열의 개수를 튜플로 반환합니다.
print(df.shape)
2.columns: DataFrame의 열 이름을 반환합니다.
print(df.columns)
3.index: DataFrame의 행 인덱스를 반환합니다.
print(df.index)
4.dtypes: 각 열의 데이터 유형을 반환합니다.
print(df.dtypes)
DataFrame의 주요 메서드
- 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)