본문 바로가기
Python

3/22 - Pandas; Python 기본 함수 및 개념

by PETRA_94 2024. 3. 22.

[기억할 개념]

1. pandas의 데이터 오브젝트

1-1. 인덱스(index)
 : 데이터프레임(DataFrame) 또는 시리즈(Series)의 각 행 또는 각 요소에 대한 식별자

  • DataFrame 자료구조에도  인덱스를  설정할  수  있음
  • 0부터 시작하는 숫자 뿐아니라 임의로 문자로 적용할 수 있음 
  • 아예 처음부터 파일 불러올때 , 인덱스를 지정하는 것도 가능

1-2. 인덱스 관련 함수

  • set_index(): 특정 컬럼에 들어있는 값을 인덱스로 활용
# df가 가지고 있는 특정 컬럼명을 기준으로 인덱스를 설정하기 
data = df.set_index('컬럼명')
data.head()
# 불러올때 인덱스 지정하기
pd.read_csv('./data/file.csv' , index_col = '컬럼정보') 
pd.read_csv('./data/file.csv' , index_col = 0) # 0부터 시작
  • reset_index(): 현재 인덱스를 0부터 시작하는 정수로 변경
# reset_index() 의 기본값은 drop = False를 가지고 있습니다. 
data.reset_index()
# 현재  인덱스를 컬럼으로 변경할 수 있습니다.
# reset_index(drop = True) 명령어를 활용하면,
# 현재 인덱스 값을 컬럼으로 변경하지 않고 인덱스를 초기화할 수 있습니다 
data.reset_index(drop=True)

 
2.데이터 타입 변경

DataFrame['column_name'] = DataFrame['column_name'].astype(new_dtype)
  • astype(): Pandas 데이터프레임의 열의 데이터 타입 변경
  • DataFrame['column_name']: 열의 데이터 타입을 변경하고자 하는 열을 지정
  • new_dtype: 변경하고자  하는  새로운  데이터  타입을  명시
데이터 타입 설명 예시
int64, int32 정수형 데이터 (64비트 또는 32비트) 1, 42, -10, 1000
float64, float32 부동 소수점 수 (64비트 또는 32비트) 3.14, -0.001, 2.718
object 문자열 데이터(일반적으로  문자열) 'Hello', 'Data Science'
bool 불리언(참/거짓) 데이터 True, False
datetime64 날짜와 시간 데이터 '2023-12-31 08:00:00'
timedelta64 시간 간격(두 날짜 또는 시간 사이의  차이) 데이터 '3 days', '2 hours'
category 카테고리형 데이터(제한된 고유 값으로 구성) 'Red', 'Blue', 'Green'

2-1. float: 정수 형식으로 변환될 때 잘림.
float 또는 real => 문자 데이터로 변환 시 일반적으로 STR 함수 사용
str => int로 바꾸고 싶을 때, str => float => int 

  • int → float
import pandas as pd 
# 예시 데이터프레임 생성
data = {'integer_column': [1, 2, 3, 4, 5]} 
df = pd.DataFrame(data)
# 정수형 열을 부동소수점으로 변환
df['integer_column'] = df['integer_column'].astype(float) 
print(df.dtypes)  #데이터프레임의 열 타입 확인
  • int → str
mport pandas as pd 
# 예시 데이터프레임 생성
data = {'numeric_column': [1, 2, 3, 4, 5]} 
df = pd.DataFrame(data)
# 숫자열을 문자열로 변환
df['numeric_column'] = df['numeric_column'].astype(str) 
print(df.dtypes)  #데이터프레임의 열 타입 확인

 
3. concat: 데이터셋 합치기

  • axis: 연결하고자 하는 축 방향 지정
    기본값은 0 => 위아래로 연결하는 경우 해당 / 1로 설정 => 좌우로 연결
  • ignore_index: 연결된 데이터프레임의 인덱스 설정
    false => 인덱스 유지 / true => 새로운 인덱스 생성