pandas.Series()
.items()
(index,value)
로 반환s07_pandas2.py
생성import pandas as pd
obj = pd.Series([10,20,30,40,50])
print(obj)
print('-'*3)
print(obj*10)
print('-'*3)
print(obj[obj>25])
print('-'*3)
print(obj>25)
print('-'*3)
pop = pd.Series([9765623,3441453,2948375],index=["서울","부산","인천"])
print(pop)
print('-'*3)
# items(): Series 객체에 있는 요소를 튜플 형태의 (index,value)로 반환
for i,v in pop.items():
print('%s: %d명' % (i,v))
print('-'*3)
# Series 객체와 딕셔너리
pop = pd.Series({"서울":9765623,"부산":3441453,"인천":2948375},index=["서울","부산","인천","경기","광주"]) # 딕셔너리의 크기보다 인덱스를 더 많이 지정
print(pop) # 딕셔너리에 값이 없는 인덱스는 NaN이 됨
pop['광주'] = 149336 # NaN인 인덱스에 값 대입
print(pop)
print('-'*3)
print('광주시 인구: %.0f명' % pop['광주'])
pandas.DataFrame()
.loc[행 인덱스, 열 인덱스]
.iloc[행 인덱스 번호, 열 인덱스 번호]
.loc[]
와 달리 지정된 식별자(문자열) 대신 내부 인덱스(숫자) 사용s08_pandas3.py
생성import pandas as pd
data = {"이름":["도로롱","실험용","관리자","테스트"],
"아이디":["dororong","user","admin","test"],
"비밀번호":["sleepy","1234","abcd","0000"]}
frame = pd.DataFrame(data)
print(frame)
print('-'*3)
member = {"이름":["바닐리치","바닐프티"],
"나이":[10,13],
"전화번호":["010-1234-5678","010-0000-0000"]}
frame = pd.DataFrame(member,columns=["이름2","전화번호","나이","주소"],index=["01","02"])
print(frame)
s09_pandas4.py
생성import pandas as pd
data = {"학교명":["가나","다라","마바","사아","자차"],
"학급 수":[25,23,15,19,10],
"학생 수":[620,600,550,580,400],
"교사 수":[80,95,70,90,65]}
frame = pd.DataFrame(data,index=['01','02','03','04','05'])
print(frame)
print('-'*3)
# frame 객체에서 행 인덱스가 '02'이고 열 인덱스가 '학생 수'인 요소의 값
print(frame.loc['02','학생 수'])
print('-'*3)
# frame 객체에서 행 인덱스가 '04'이고 열 인덱스가 '학교명', '학급 수', '교사 수'인 DataFrame 객체 반환
print(frame.loc['04',['학교명','학급 수','교사 수']])
print('-'*3)
s10_pandas5.py
생성import pandas as pd
data = {"아이디":["test","admin","dororong","pika"],
"구매 상품":["다이어리","스티커","중성펜","지우개"],
"가격":[15000,4900,3300,900],
"수량":[3,5,1,10],
"구매일":['0101','0210','0303','0330']}
frame = pd.DataFrame(data)
print(frame)
print('-'*3)
# frame 객체에서 행 인덱스 2이고 열 인덱스 0인 요소의 값
print(frame.iloc[2,0])
print('-'*3)
# frame 객체에서 행 인덱스는 3이고 열 인덱스가 0(='아이디')과 1(='구매 상품')인 DataFrame 객체 반환
print(frame.iloc[3,:2])
print('-'*3)
# frame 객체에서 행 인덱스는 전체, 열 인덱스가 0(='아이디')과 4(='구매일')로 구성된 DataFrame 객체 반환
print(frame.iloc[:,[0,4]])
.sum()
.mean()
s11_pandas6.py
생성import pandas as pd
scores = {'이름':['테스트','도로롱','실험용','불켜미','샹델라'],
'국어':[95,97,90,94,87],
'영어':[90,86,93,85,93],
'수학':[85,88,89,88,99]}
frame = pd.DataFrame(scores)
print(frame)
print('-'*3)
frame2 = frame.iloc[:,[1,2,3]] # 연산을 위해 이름을 제외
print(frame2)
print('-'*3)
# 행 방향으로 요소 값의 합계
total = frame2.sum(axis=1)
# 행 방향으로 요소 값의 평균
avg = frame2.mean(axis=1)
print('이름 합계 평균')
for i in range(5):
print('%s %d %.2f' % (frame.iloc[i,0],total.iloc[i],avg.iloc[i]))
matplotlib.pyplot.rc()
에 한글을 지원하는 폰트 지정pip install matplotlib
matplotlib.pyplot.plot(x,y)
matplotlib.pyplot.show()
matplotlib.pyplot.title()
matplotlib.pyplot.xlabel()
, matplotlib.pyplot.ylabel()
matplotlib.pyplot.legend()
ch12-matplotlib
생성하고 새 파일 s01_mat.py
생성import matplotlib.pyplot as plt
# y축에 사용될 변수
data = [20,30,40]
# x축에 사용될 변수
x = [1,2,3]
plt.plot(x,data)
plt.show()
s02_mat2.py
생성import matplotlib.pyplot as plt
# 선 그래프; x,y축은 리스트형 데이터
plt.plot(['test','admin','pika'],[85,88,90])
# 상단 중앙에 제목 표시
plt.title('English Score of three students')
# x축 레이블의 이름 설정
plt.xlabel('Student Name')
# y축 레이블의 이름 설정
plt.ylabel('Score')
# 화면에 출력
plt.show()
s03_mat3.py
생성import matplotlib.pyplot as plt
from matplotlib import rc
# '폰트'에 'Malgun Gothic' 지정
rc('font',family='Malgun Gothic') # 생략시 한글 출력이 안 됨
# 딕셔너리 자료형으로 폰트 스타일 생성
font1 = {'size':18,'color':'green'}
# 데이터
xdata = ['테스트','실험용','관리자']
ydata = [90,85,88]
# 선 그래프
plt.plot(xdata,ydata)
# 상단 중앙에 제목을 표시, 폰트 스타일 적용
plt.title('세 명의 국어 성적', fontdict=font1)
# x축 레이블의 이름 설정
plt.xlabel('이름')
# y축 레이블의 이름 설정
plt.ylabel('성적')
# 화면에 출력
plt.show()
s04_mat4.py
생성import matplotlib.pyplot as plt
from matplotlib import rc
# 한글이 표시될 수 있도록 폰트 지정
rc('font',family='Malgun Gothic')
# 데이터
xdata = ['학생용','실험용','테스트']
ydata1 = [90,85,88]
ydata2 = [83,88,91]
# 선 그래프
# label 옵션으로 그래프의 범례 지정
plt.plot(xdata,ydata1,label='국어')
plt.plot(xdata,ydata2,label='영어')
# 범례를 화면에 표시할 위치 지정
plt.legend(loc='upper center')
# 상단 중앙에 제목을 표시
plt.title('세 학생의 성적')
# 화면에 출력
plt.show()
옵션 값 | 스타일 |
---|---|
- |
실선(solid line) |
-- |
파선(dashed line) |
-. |
일점쇄선(dashed-dotted line) |
: |
점선(dotted line) |
옵션 값 | 스타일 |
---|---|
o |
색이 채워진 원 |
x |
x |
s |
색이 채워진 사각형 |
d |
색이 채워진 다이아몬드 |
* |
* |
s05_mat5.py
생성import matplotlib.pyplot as plt
from matplotlib import rc
# 한글이 표시될 수 있도록 폰트 지정
rc('font',family='Malgun Gothic')
# 데이터
xdata = ['학생용','실험용','테스트']
ydata1 = [90,85,88]
ydata2 = [83,88,91]
ydata3 = [85,97,78]
ydata4 = [92,88,82]
# color, linestyle, marker 지정
plt.plot(xdata,ydata1,label='국어',color='red',linestyle='-',marker='o')
plt.plot(xdata,ydata2,label='영어',color='#00ffff',linestyle='--',marker='x')
plt.plot(xdata,ydata3,label='수학',color='magenta',linestyle='-.',marker='s')
plt.plot(xdata,ydata4,label='사회',color='#444444',linestyle=':',marker='d')
# 범례를 가장 적합한 위치에 표시
plt.legend(loc='best') # 우측 상단에 표시됨
# 제목 표시
plt.title('세 학생의 네 과목 성적')
# 화면 출력
plt.show()