Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 디지털마케팅
- 파이썬타자게임
- 주피터노트북
- 딥러닝
- 소셜이노베이션
- 한국산업인력공단
- 청년친화형
- 파이썬라이브러리
- 데이터
- 파이썬기초
- 파이썬
- pythonlibrary
- ESG지원사업
- 빅데이터
- 고용노동부
- 프로그래밍
- ABC부트캠프
- 유클리드소프트
- python
- jupiternotebook
- 웹크롤링
- JupyterNotebook
- 공공데이터
- 머신러닝
- 데이터분석
Archives
- Today
- Total
TECH_LOG
Python Library_Pandas1[ Pandas의 개념,Series1 ] 본문
ABC부트캠프_2023.03.22
Pandas
- 표 형식의 데이터나 다양한 형태의 데이터를 다룸
- 시리즈(Series) 클래스와 데이터프레임(DataFrame) 클래스를 제공
Series 일련의 객체를 담을 수 있는 1차원 배열의 자료구조 index 데이터와 연관된 이름을 가짐 시리즈 객체는 라벨 값에의해 인덱싱 가능하므로 인덱스 라벨 값을 키로 갖는 딕셔너리 자료형과 같다고 볼수있음(in, items, key와 value 접근) |
obj = pd.Series([2,-7, 4, 10])
obj
>>>
0 2
1 -7
2 4
3 10
dtype: int64
obj.values
>>>array([ 2, -7, 4, 10], dtype=int64)
obj.index
>>>RangeIndex(start=0, stop=4, step=1)
obj2 = pd.Series([2,-7, 4, 10], index = ['d','b','a','c'])
obj2
>>>
d 2
b -7
a 4
c 10
dtype: int64
obj2.index
>>> Index(['d', 'b', 'a', 'c'], dtype='object')
더보기
obj2['a']
>>>4
obj2['d']=6
obj2[['c','a','d']]
>>>
c 10
a 4
d 6
dtype: int64
obj2[obj2>0]
>>>
d 6
a 4
c 10
dtype: int64
obj2 * 2
>>>
d 12
b -14
a 8
c 20
dtype: int64
- 딕셔너리 객체를 시리즈로 생성
sdata = {'Ohio' : 3500, 'Texas' : 7100,'Oregon' : 6000, 'Utah' : 1200}
obj3 = pd.Series(sdata)
obj3
>>>
Ohio 3500
Texas 7100
Oregon 6000
Utah 1200
dtype: int64
states = ['California', 'Ohio', 'Oregon','Texas']
obj4 = pd.Series(sdata, index=states)
obj4
>>>
California NaN
Ohio 3500.0
Oregon 6000.0
Texas 7100.0
dtype: float64
pd.isnull(obj4) # null 이면 True
>>>
California True
Ohio False
Oregon False
Texas False
dtype: bool
pd.notnull(obj4) # null 이 아니면 False
>>>
California False
Ohio True
Oregon True
Texas True
dtype: bool
obj4.isnull() # null 이면 True # pd.isnull() 둘 중 어느 것을 사용하여도 상관 없음
>>>
California True
Ohio False
Oregon False
Texas False
dtype: bool
obj3 + obj4 # 결측값이 있는 곳은 계산x
>>>
California NaN
Ohio 7000.0
Oregon 12000.0
Texas 14200.0
Utah NaN
obj4.name = 'population' # 시리즈 이름 설정
obj4.index.name = 'state' # 인덱스 이름 설정
obj4
>>>
state
California NaN
Ohio 3500.0
Oregon 6000.0
Texas 7100.0
Name: population, dtype: float64
더보기
obj
>>>
0 2
1 -7
2 4
3 10
dtype: int64
obj.index = ['bob', 'steve','jeff','ryan']
obj
>>>
bob 2
steve -7
jeff 4
ryan 10
dtype: int64
-- 딕셔너리의 원소는 순서가 없으므로 순서를 정하고 싶을경우 인덱스를 리스트로 지정
활용_ 인구데이터 |
s = pd.Series([9904312, 3448737, 2890451, 2466052],
index=["서울", "부산", "인천", "대구"])
s
>>>
서울 9904312
부산 3448737
인천 2890451
대구 2466052
s2 = pd.Series({"서울" : 9631482, "부산" : 3393191, "인천" :2632035, "대전" : 1490158 },
index =["부산", "서울", "인천", "대전"])
s2
>>>
부산 3393191
서울 9631482
인천 2632035
대전 1490158
s2 - s # 결측값 있는 것은 계산 x, 같은 키 값 찾아서 계산
>>>
대구 NaN
대전 NaN
부산 -55546.0
서울 -272830.0
인천 -258416.0
s.values - s2.values # 키 상관 없이 값(vlues)끼리 뺴줌
# 의미 없는 데이터가 됨
>>>array([ 6511121, -6182745, 258416, 975894]
ds = s - s2
ds
>>>
대구 NaN
대전 NaN
부산 55546.0
서울 272830.0
인천 258416.0
ds[ds.notnull()] #notnull의 결과 True인 경우에만 ds 계산
>>>
부산 55546.0
서울 272830.0
인천 258416.0
rs = (s - s2) / s2 * 100
rs = rs[rs.notnull()]
rs
>>>
부산 1.636984
서울 2.832690
인천 9.818107
'Programming' 카테고리의 다른 글
Python Library_Pandas3 [ DataFrame ] (0) | 2023.03.23 |
---|---|
Python Library_Pandas2[ Series2 ] (0) | 2023.03.23 |
Python Library_Numpy4[데이터 무작위선택, 난수생성, 정렬] (0) | 2023.03.22 |
Python Library_Numpy3[2차원그리드, 브로드캐스팅, 차원축소, 기술통계, 집합관련함수, 난수 (0) | 2023.03.22 |
Python Library_Numpy2[축 전환, 배열연결] (0) | 2023.03.22 |
Comments