판다스 데이터프레임
판다스(Pandas)는 파이썬에서 데이터 분석을 위해 널리 사용되는 라이브러리로, 그 중 데이터프레임(DataFrame)은 행과 열로 이루어진 2차원 자료구조입니다. 데이터프레임은 엑셀 스프레드시트와 유사한 형태로 데이터를 저장하고 조작할 수 있어 데이터 분석 작업에 매우 유용합니다.
import pandas as pd
# 데이터프레임 생성
data = {
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"City": ["New York", "Los Angeles", "Chicago"]
}
df = pd.DataFrame(data)
print(df)
데이터프레임의 주요 특징
1. 데이터프레임 생성
데이터프레임은 딕셔너리, 리스트, Numpy 배열 등 다양한 데이터 구조로부터 생성할 수 있습니다. 예를 들어, 딕셔너리를 사용하여 데이터프레임을 생성할 수 있습니다.
data = {
"Product": ["Apple", "Banana", "Cherry"],
"Price": [100, 200, 300]
}
df = pd.DataFrame(data)
print(df)
2. 데이터프레임 열과 행 접근
데이터프레임의 열(column)이나 행(row)에 접근하기 위해서는 loc 또는 iloc 메서드를 사용할 수 있습니다. loc은 라벨을 기준으로, iloc은 정수 인덱스를 기준으로 접근합니다.
# 열 접근
print(df["Product"])
# 행 접근 (loc 사용)
print(df.loc[0])
# 행 접근 (iloc 사용)
print(df.iloc[1])
3. 데이터 추가 및 삭제
데이터프레임에 새로운 열이나 행을 추가하거나 기존 데이터를 삭제할 수 있습니다. 새로운 열을 추가하려면 다음과 같이 작성합니다.
# 새로운 열 추가
df["Discounted Price"] = df["Price"] * 0.9
print(df)
행을 삭제하려면 drop() 메서드를 사용합니다.
# 행 삭제
df = df.drop(1)
print(df)
4. 데이터 분석 함수
판다스는 데이터 분석에 유용한 다양한 함수를 제공합니다. 예를 들어, describe() 함수는 데이터프레임의 기초 통계 정보를 제공합니다.
print(df.describe())
또한, 특정 열의 평균, 합계를 구하는 mean(), sum() 등의 함수도 사용할 수 있습니다.
average_price = df["Price"].mean()
print("Average Price:", average_price)
5. 데이터프레임 필터링
데이터프레임에서 특정 조건을 만족하는 데이터를 필터링할 수 있습니다. 예를 들어, 가격이 150 이상인 제품만 선택하려면 다음과 같이 작성합니다.
filtered_df = df[df["Price"] >= 150]
print(filtered_df)
6. 데이터프레임 정렬
데이터프레임을 특정 열을 기준으로 정렬하려면 sort_values() 메서드를 사용합니다.
# 가격을 기준으로 내림차순 정렬
sorted_df = df.sort_values(by="Price", ascending=False)
print(sorted_df)
요약
- 변수는 데이터를 저장하는 공간으로, 값을 할당하면 자동으로 자료형이 결정됩니다.
type()함수를 사용하여 변수의 자료형을 확인할 수 있습니다.- 파이썬의 변수는 동적 타이핑을 사용하여, 동일한 변수에 다른 타입의 값을 할당할 수 있습니다.
- 여러 변수에 값을 한 번에 할당하거나 동일한 값을 여러 변수에 할당할 수 있습니다.
- 자료형을 변환하기 위해
int(),float(),str()등의 함수를 사용할 수 있습니다. - 판다스 데이터프레임은 행과 열로 이루어진 2차원 자료구조로, 데이터 분석에 매우 유용합니다.
- 데이터프레임은 딕셔너리나 리스트 등 다양한 형태로 생성할 수 있으며, 열과 행에 접근하고 데이터를 추가, 삭제할 수 있습니다.
- 데이터프레임의 필터링, 정렬, 통계 함수 등을 활용하여 데이터를 효율적으로 분석할 수 있습니다.
변수와 판다스 데이터프레임은 파이썬에서 데이터를 다루는 데 필수적인 도구입니다. 이들을 잘 이해하고 활용하여 효과적인 데이터 처리를 해보세요!