#pandas
import pandas as pd
s=pd.Series([9904312,3448737,2890451,2466052], index=['서울','부산','인천','대구'])
print(s)
시리즈연산
Numpy 배열 처럼 시리즈도 벡터화 연산을 할수 있다 다만 연산은 시리지의 값에만 적용 되며 인덱스 값은변하지 않는다 예를 들어 인구숫자를 백만다누이로 만들기 위해 시리즈 객체를1,000,000으로 나누어도 인덱스 라벨에는 영향을 미치지않는것을 볼수있다,
s/1000000
(250e4<s) & (s<500e4) #Name: 인구, dtype: bool
s[(250e4<s) & (s<500e4)] #Name: 인구, dtype: int64
s['부산':'대구'] #문자로 인덱싱 할떄는 마지막 인덱스 포함
for k,v in s.items():
print('%s= %d'%(k,v)) #k=keays v=values
s2=pd.Series({'서울':9631482,'부산':3393191,'인천':2632035,'대전':1490158},index=['부산','서울','인천','대전'])
ds= s-s2 #pandas로 구성한 데이터끼리 뺼셈 가능
예시에서는 대구,대전의경우 2010년 2015년 자료가 모두 존재하지 않기떄문에 계산이 불가능하므로 Nan 이라는 값을 가지게된다 또한 nan값이 flpat자료형에서만 가능하므로다른 계산 결과도 모두 float 자료형이 되었다는점에 주의한다
ds.notnull()#null 아닌위치에 True
rs=(s-s2)/s2 *100
rs=rs[rs.notnull()]
#연습문제
data={
'2015':[9904312,3448737,2890451,2466052],
'2010':[9631482,3393191,2632035,2431774],
'2005':[9762546,3512547,2517680,2456016],
'2000':[9853972,3655437,2466338,2473990],
'지역':['수도권','경상권','수도권','경상권'],
'2010-2015 증가율':[0.0283,0.0163,0.0982,0.0141]
}
columns=['지역','2015','2010','2005','2000','2010-2015 증가율']
index=['서울','부산','인천','대구']
df=pd.DataFrame(data, index=index, columns=columns)
print(df) #
df.T # 열과 행을 바꾸어 출력
print(type(df['2015'])) #열방향인덱싱
print((df['2015'].shape))
df['2015']
데이터 프레임의 열 인덱스가 문자열 라벨을가지고 있는 경우에는순서를 나타내는 정수인덱스를 열인덱싱에 사용할수 없다. 정수인덱싱의 슬라리스는 행(row)을 인덱싱할떄 사용하므로 열을 인덱싱 할때는 쓸수 없다.
다만 원래부터 문자열이 아닌 정수형 열 인덱스를 가지는 경우에는 인덱스 값으로 정수를 사용할수있다,
import numpy as np
df2=pd.DataFrame(np.arange(12).reshape(3,4))
df2
print(type(df.iloc[2]))
df.iloc[2] # iloc 시리즈로 출력하기
#csv파일 만들기
%%writefile sample1.csv
c1,c2,c3
1,1.11,done
2,2.22,two
3,3.33,three
pd.read_csv('sample1.csv',index_col='c1')#테이블 내의 특정한 열을 행 인덱스로 지정하고 싶으면
%%writefile smaple3.txt
c1 c2 c3 c4
0.179181 -1.538472 1.347553 0.43381
1.024209 0.087307 -1.271997 0.49265
0.417899 -2.002308 0.255245 -1.10515
pd.read_table('smaple3.txt', sep='\s+')#구분자는 스페이스바 테이플로 표시
%%writefile sample4.csv
c1,c2,c3
1,1.11,one
2, ,two
누락,3.33,three
#특정 문자열을 nan으로 표시
df=pd.read_csv('sample4.csv', na_values=['누락'])
#구분자 | 를 넣어서 출력
df.to_csv('sample7.txt',sep='|')
df.to_csv('sample8.txt', na_rep='missing')
#인덱스 a,b,c 붙임
df.index=['a','b','c']
#pandas 로 웹에서 데이터 불러오기
df_titanic=pd.read_csv('https://raw.githubusercontent.com/datascienceschool/docker_rpython/master/data/titanic.csv')
df_titanic.head() #처음 5개만 불러오기
df_titanic.tail(3) #끝 3개만 불러오기
df_titanic.tail()#끝 5개만 불러오기
'First step > AI 기초반' 카테고리의 다른 글
[TIL]21.07.14keras로 실습하기 (0) | 2021.07.14 |
---|---|
[TIL]21.07.13 웹크롤링 (0) | 2021.07.13 |
[TIL]21.07.12Keras 1일차 (0) | 2021.07.12 |
[TIL] 21.07.09퍼셉트론,Relu ,실습 (0) | 2021.07.09 |
[TIL]21.07.08로지스틱 회귀2 , 퍼셉트론 (0) | 2021.07.08 |