본문 바로가기

Programming

[Python][Library] 2. Pandas - 데이터프레임 패키지

반응형

pandas documentation : http://pandas.pydata.org/pandas-docs/stable/

 

pandas documentation — pandas 1.3.5 documentation

The reference guide contains a detailed description of the pandas API. The reference describes how the methods work and which parameters can be used. It assumes that you have an understanding of the key concepts.

pandas.pydata.org

 

0) Series 1차원 배열의 형태를 가진 자료구조 (데이터 객체)

s = pd.Series([1,3,5,np.nan,6,8])
print(s)
 
 

1) 데이터 프레임(data frame)

데이터프레임은 2차원 테이블의 형태를 가지며 행방향 인덱스(index)와 열방향 칼럼(column)이 존재하는 행과 열을 가지는 자료구조 (데이터 객체)

import pandas as pd
 
values = [[123], [456], [789]]
index = ['첫째행''둘째행''셋째행']
columns = ['컬럼1''칼럼2''칼럼3']

df = pd.DataFrame(values, index=index, columns=columns)
print(df)
 
 
 

2) 데이터 프레임의 생성

데이터프레임은 리스트(List), 딕셔너리(dict), Numpy의 ndarrays, 또 다른 데이터프레임으로 생성할 수 있음

# 리스트로 생성하기
data = [
    ['100''이순신'9.7], 
    ['101''강감찬'8.9], 
    ['102''을지문덕'9.3], 
    ['103''김유신'6.1], 
]
df = pd.DataFrame(data)
print(df)
 
 
# 생성된 데이터프레임에 열(columns)을 지정 
df = pd.DataFrame(data, columns=['학번''이름''점수'])
print(df)
 
 
# 딕셔너리로 생성하기
data = { '학번' : ['100''101''102''103'],
'이름' : [ '이순신''강감찬''을지문덕''김유신'],
         '점수': [9.78.99.36.1,]}

df = pd.DataFrame(data)
print(df)
 

데이터프레임 생성 실습(1)

#실습
#리스트를 이용하여 아래와 같은 데이터와 컬럼명을 가진 데이터 프레임을 만드시오.
#자동차 아이디 - 100, 101, 102, 103
#자동차 이름 - BMW, Benz, 제네시스, 롤스로이스
#자동차 가격 - 1000, 1200, 1200, 1500

 

data = [
    ['100''BMW'1000], 
    ['101''Benz'1200], 
    ['102''제네시스'1200], 
    ['103''롤스로이스'1500], 
]
df = pd.DataFrame(data)
print(df)

 

데이터프레임 생성 실습(2)

#실습
#딕셔너리를 이용하여 아래와 같은 데이터와 컬럼명을 가진 데이터 프레임을 만드시오.
#자동차 아이디 - 100, 101, 102, 103
#자동차 이름 - BMW, Benz, 제네시스, 롤스로이스
#자동차 가격 - 1000, 1200, 1200, 1500

 

data = { '아이디' : ['100''101''102''103'],
'이름' : [ 'BMW''Benz''제네시스''롤스로이스'],
         '가격': [1000120012001500,]}

 

df = pd.DataFrame(data)
print(df)
 
 

3) 데이터 프레임의 접근

  • df.head(n) - 앞 부분을 n개만 보기
  • df.tail(n) - 뒷 부분을 n개만 보기
  • df['열이름'] - 해당되는 열을 확인

 

print(df.head(3)) # 앞 부분을 3개만 보기
print(df.tail(3)) # 뒷 부분을 3개만 보기
print(df['학번'],df['점수']) # '학번'에 해당되는 열을 보기
 
 
#dataframe 기술통계
print(df.describe())
 
 
#행열 변경 
print(df.T)
 
 
#정렬 
print(df)
print('-------')
print(df.sort_index(axis=0, ascending=False)) #index를 기준으로 내림차순 정렬
print('-------')
print(df.sort_index(axis=1, ascending=True)) #컬럼을 기준으로 오름차순 정렬
 
 
 
print(df['점수'] > 8# 점수가 8 이상이면 True 아니면 False
 
 
 
print(df[df['점수'] > 9]) # 점수가 9 이상인 데이터만 출력
 
 
 

데이터프레임 접근 실습

#실습
#앞서 만든 학번-점수 데이터 프레임을 학점이 높은 순으로 sorting 하시오. 

 

#실습
#앞서 만든 자동차 데이터 프레임 중에서 가격이 1200 이상인 것만 출력하시오. 
 
 

 

 

반응형
LIST