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 |