Pandas 자료구조 Series,Dataframe

2024. 4. 7. 22:58정보처리,전산/Python

반응형

-표 형태 데이터 처리에 사용함

- numpy 기반을 개발됨

- label 기반 큰 데이터 셋에 대한 재배치, 재색인, 집계, 부분 집합 구하기 가능

- 누락 데이터 유연하게 처리

- 데이터 셋 merging, joining, pivoting

- 집계 기능

- axes 방향으로 계층적 구조의 multiple labeling

 

 

 


■ 주요 자료구조 유형 중 Series

 

-  series는 동일한 데이터 타입을 저장하고 있는 1차원 데이터를 표현하며 컬럼이 하나이다. (벡터) ,index 를 가지고 있고 리스트와 튜플 index, dict의 key와 유사함

- 같은 값의 INDEX 중복 지정 가능

- LIST ,TUPLE의 INDEX를 활용하여 Series 생성 가능

- DICTIONARY 의 KEY를 활용해서 생성 가능

- 연산 수행 전 자동으로 정렬 이루어짐

 

  

 

■  Series의 INDEX 특성

중복을 허용하고 순서 개념 있음

 

 

0,1,2,3은 index이다. list와 의 차이점은 인덱스를 변경할 수 있다는 것이다.

 

 

 

 

 

 

 

- index 이름지정

import numpy as np
import pandas as pd

era = [1, 2, 3, 4,np.nan]
pitcher = ['원태인', '류현진', '김광현', '최충연', 'Some Other Pitcher']  # Add another pitcher

bdata = pd.Series(era, index=pitcher)
bdata.name = 'ERA'
bdata.index.name = 'pitcher'

print(bdata)

 

 

 

 

 

-Series 기본 문형

Series(data=None, index=None,dtype=None,name=None,copy =False,fastpath=False)

 



data: Series에 저장할 데이터를 나타낸다. 리스트, 배열, 사전 등이 될 수 있다. 제공되지 않거나 `None`으로 설정된 경우 빈 Series가 생성된다.
  
index: Series의 인덱스 레이블을 지정한다. 리스트 형태의 객체 (예: 리스트, 배열, 레인지 등)일 수 있다. 제공되지 않거나 `None`으로 설정된 경우 기본 정수형 인덱스 레이블이 할당된다.

dtype: Series의 값의 데이터 타입을 지정한다. 제공되지 않거나 `None`으로 설정된 경우 데이터가 제공된 대로 유추된다.

name: Series의 이름을 설정한다. Series 객체를 레이블링하는 데 유용한다. 제공되지 않거나 `None`으로 설정된 경우 Series에 이름이 없다.

copy: 입력 데이터를 복사할지 여부를 지정한다. 기본적으로 `False`로 설정되어 있으므로 필요한 경우에만 입력 데이터가 복사된다.

fastpath: 최적화 플래그이다. `True`로 설정되면 Series를 구성할 때 빠른 경로 최적화를 사용할 수 있음을 나타낸다. 기본적으로 `False`로 설정된다.

 

 

 

 

 

 

 

■  PANDAS 주요 자료구조 유형 중 Dataframe

 

- 2차원 데이터를 표현함

- 엑셀의 Worksheet와 유사함
- 차트없이 데이터만 표현
- list/tuple/dictionary의 2차원 데이터로부터의 생성 지원
- 엑셀파일,CSV파일,데이터베이스등 으로부터의 생성 지원
- Index:행에서의index
- Columns:열에서의index

 

 

 

-2차원의 표를 가지는 구조

import numpy as np
import pandas as pd
indexs =['ss','ds','ki','ss','hw','ssg','ss']
cols=['era','pitcher','win']
bdata={'era' : [1, 2, 3, 4,5,6,7 ],
      'pitcher' : ['원태인','곽빈','양현종','뷰캐넌','류현진', '김광현', '최충연'],
       'win':[3,3,3,3,3,3,3]}

myframe=pd.DataFrame(bdata,columns=cols,index=indexs)

print(myframe)

 

 

label은 column으로 구성되고 각 열은 이름을 가질 수 있다.

 

 

 

 

 

 

 

 

 

-df 구조

 

 

행과 열 접근

 

 

데이터 추가

 

 

 

 

 

 

 
 
 
 
 

 

 

- DataFrame의 읽기 쓰기

 

 

import numpy as np
import pandas as pd
indexs =['1st','2nd','3rd','4th','5th','6th','7th']
pitcher=['원태인','곽빈','양현종','뷰캐넌','류현진', '김광현', '최충연']

mylist = list(10*i for i in range(1,50))
print(mylist)

myframe = pd.DataFrame(np.reshape(mylist,(7,7)), index=pitcher,columns=indexs)
print(myframe)

 

 

 

 

- iloc() 행 인덱스 번호를 기준으로 행추출

result = myframe.iloc[1]
print(type(result))
print(result)

 

 

 

 

-iloc() 인덱스 슬라이싱

 

 

result = myframe.iloc[[1,3]]
print(type(result))
print(result)

result = myframe.iloc[1::2]
print(type(result))
print(result)

 

 

 

 

 

-loc()  라벨을 이용하여 행 추출

result = myframe.loc[['원태인']]
print(type(result))
print(result)

 

 

 

 

반응형

'정보처리,전산 > Python' 카테고리의 다른 글

login 기본 코드  (0) 2024.05.20
파일 쓰기 읽기 내용 추가  (0) 2024.04.26
self  (0) 2024.03.17
python 폴더정리 코드  (0) 2024.03.09
ANYPANG (list & tuple)  (0) 2024.02.04