대표사진 삭제
사진 설명을 입력하세요.
import pandas as pd
dict_data = {
'데이터 구조, 수집, 입출력, 처리, 통계적 탐색, 시각화, 응용':['데이터 구조에 대한 이해',\
'데이터 생성, 파일 데이터(RDBMS, WEB Crawling, Open API)',\
'생성, 행, 열 선택, 추가, 변환, 연산처리(Numpy, Pandas, Scikit-learn)', \
'기술통계분석, 가설과 검증, 상관분석 분산분석, PCA, 변수중요도(RF)', 'Matplotlib, Seaborn'],\
'':['자료구조, 인덱스, 행/열 다루기, 연산', 'Internal Data Building, CSV, Excel, JSON 파일, 웹 스크래핑', \
'OPEN API 분석용 데이터 셋을 위한 전처리', '통계적 접근을 통한 데이터 특징 파악, 중요 변수 및 파생변수 도출, \
모델링 진행 방안 연계',\
'시각적 탐색을 통한 데이터 특징, 중요 변수 및 파생변수 도출']}
df = pd.DataFrame(dict_data, index=['데이터구조', '입출력', '전처리', '통계적 탐색', '시각화'])
df
==============================================수업문제====================================================
Q. 파이썬 외장함수 random을 이용하여 아래사항들을 출력하세요.
0.0<= x <1.0 사이의 float를 랜덤하게 선택
10에서 20사이의 정수중에서 난수값 선택
10보다 적은 int 선택
20과 30사이의 float 선택
[6,7,8,9,10 ]리스트 내부에 있는 요소를 랜덤하게 선택
[6,7,8,9,10 ]리스트 내부에 있는 요소중 k개 선택
In [245]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import numpy as np import random print('1번:',np.random.random(),'\n') print('2번:',np.random.randint(10,20),'\n') print('3번:',np.random.randint(10),'\n') print('4번:',np.random.uniform(20,30),'\n') print('5번:',np.random.choice([6,7,8,9,10]),'\n') print('6번:',random.sample([6,7,8,9,10], k=2)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
1번: 0.2565805322708937 2번: 11 3번: 3 4번: 25.624895181615326 5번: 7 6번: [8, 7]
Q. 주어진 데이터에서 랜덤으로 하나를 선택하여 꺼낸 다음 그 값을 출력하고 꺼내진 요소를 제외시킨 리스트를 출력하세요.
data = [1,2,3,4,5,6,7,8,9,10]
In [307]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
data=[1,2,3,4,5,6,7,8,9,10] a=random.sample(data,1) data.pop(a[0]-1) print(a) print(data) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[7] [1, 2, 3, 4, 5, 6, 8, 9, 10]
Q. 넘파이 random을 이용하여 아래사항들을 출력하세요.
0부터 10까지 랜덤한 숫자 1개
0부터 1사이의 균일분포에서 난수 5개로 구성되는 배열 생성
평균 0, 표준편차 1의 가우시안 표준정규분포에서 난수 10개로 구성되는 배열 생성
In [292]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
mt = np.random.randint(11) print(mt,'\n') mt1 = np.random.random_sample((5)) print(mt1,'\n') mt2 = np.random.randn(10) print(mt2,'\n') |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
4 [0.31677831 0.7085898 0.27837204 0.29120448 0.20174668] [ 0.78260238 1.10170741 1.10464916 -1.44462106 0.11795487 -0.27347831 0.74438337 -0.66683385 -0.41145149 0.48308483]
Q. 넘파이 random을 이용하여 아래사항들을 출력하세요.
[6,7,8,9,10] 리스트의 데이터의 순서 바꾸기
In [315]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
data=[6,7,8,9,10] np.random.shuffle(data) print(data) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[7, 6, 8, 9, 10]
Q. 넘파이 random을 이용하여 아래사항들을 출력하세요.
10보다 적은 정수에서 랜덤으로 중복되지 않게 5개를 선택 배열을 생성하세요.
c1 = [6,7,8,9,10] 배열에서 랜덤으로 중복 선택이 가능하게 5개를 선택, 배열을 생성하세요.
In [193]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
print(np.unique(np.random.randint(10,size=5)))
c1 = [6,7,8,9,10] np.random.uniform(1.0,2.0,3) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[1 4 9]
Q. 넘파이 random을 이용하여 2.0보다 크거나 3.0보다 작은 5개의 수를 출력하세요.
In [87]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
np.random.uniform(2.0,3.0,(5)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[87]:
array([2.29188497, 2.61209537, 2.40158853, 2.12068986, 2.40264139])
Q. 넘파이 random을 이용하여 0.0보다 크거나 1.0보다 작은 (3,3) 2차원 배열을 2가지 방식으로 출력하세요.
In [88]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
#0.0보다 크거나 1.0보다 작은 (3행3열) 2차원 배열을 구하는것 mt1 = np.random.uniform(0.0,1.0,(3,3)) mt2 = np.random.random_sample((3,3)) print(mt1) print(mt2) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[[0.91779555 0.70609815 0.29320934] [0.06213848 0.2696996 0.26742887] [0.43619 0.36763864 0.46118858]] [[0.8442785 0.6569465 0.33267956] [0.60673906 0.8239907 0.77907075] [0.28927334 0.30360456 0.25744469]]
Q. 앞(head) 또는 뒤(tail) (n=1) 가 나올 확률이 각각 50%(p=0.5)인 동전 던지기를 20번(size=20) 수행한 결과를 배열로 출력하세요.
In [309]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
print(np.random.binomial(n=1, p=0.5, size=20)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[1 0 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 1 1 0]
Q. (2,3,4) 3차원 배열 형태로 정규분포(np.random.normal)로 부터 무작위 샘플을 생성
In [318]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
print(np.random.normal(size=(2,3,4))) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[[[ 0.28971829 -1.25384296 1.26056299 0.79092547] [-0.41669301 1.69253612 -1.25453861 0.89229081] [-2.59002672 1.15963261 0.0500079 -2.35456797]] [[-0.2734168 -0.32503505 0.77715786 -0.53718658] [ 0.19606081 -0.25823293 1.30422557 -1.55502766] [-0.43945161 0.24400828 -1.54123101 0.15733154]]]
Q. [4 7 7 1 9]에서 중복되지 않는 원소 배열과 각 원소의 중복 개수 배열을 출력하세요.
In [322]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
a = np.array([4,7,7,1,9]) index,count=np.unique(a,return_counts=True) print(index) print(count) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[1 4 7 9] [1 1 2 1]
Q. [1, 1, 2, 2, 2, 3]에서 0 ~ 5에 해당하는 정수의 개수 배열을 출력하세요.
In [335]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
print(np.bincount([1,1,2,2,2,3], minlength=6)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[0 2 3 1 0 0]
Q(응용) 'ID', 'Prod', 'Price' 3개의 column과 10개의 row으로 구성되는 데이터셋을 아래를 참조하여 생성하세요.
ID는 1 ~ 10으로 적용
Prod는 상품코드로서 np.random을 이용하여 10보다 적은 정수를 랜덤하게 선택
Price는 가격으로서 np.random을 이용하여 1000 보다 적은 양의 소수를 랜덤하게 선택 (뽑은거 * 1000하면 됨)
3개의 컬럼을 결합하는 방법은 concat() 함수를 사용 (Series로 해도 된다) (df로 만들고 series를 덧붙이는 방법 등)
In [336]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
#고객 구매데이터 생성(id, 성별, 연령, 지역, 상품, 가격, 구매시간) import numpy as np import pandas as pd import datetime import warnings warnings.filterwarnings('ignore')
a= np.random.randint(1,20, size=10) #1번에서 20번정도 구매하는 빈도가 생기는걸 정해줌(10개의 데이터) sr_a = pd.Series(a, name='Freq')
b=np.random.randint(1,9,size=10) sr_b=pd.Series(b,name='Prod')
c=np.random.rand(10)*1000 sr_c=pd.Series(c,name='Price')
d=np.random.rand(10)*10000 sr_d=pd.Series(d,name='Amount') #10000원정도에서 왔다갔다 하게 하려고 설정
e=np.random.choice(['Man','Woman'],size=10) sr_e=pd.Series(e, name='Sex')
f=np.random.choice(['Seoul','Daejeon','Daegu','Busan','Changwon', 'Gangwon', 'Mokpo'],size=10) sr_f=pd.Series(f, name='Region')
g=np.random.choice(range(1,15) ,size=10,replace=False) sr_g=pd.Series(g, name='ID')
t=np.random.choice([datetime.datetime.now()],size=10) sr_t=pd.Series(t, name='time')
df=pd.concat([sr_a,sr_b,sr_c,sr_d,sr_e,sr_f,sr_g,sr_t],axis=1) display(df) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
- 7행 선택7행 다음에 행 추가
- 8행 선택8행 다음에 행 추가
- 9행 선택9행 다음에 행 추가
- 10행 선택10행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Freq |
Prod |
Price |
Amount |
Sex |
Region |
ID |
time |
0 |
17 |
7 |
384.320323 |
1487.854249 |
Woman |
Daegu |
10 |
2020-03-16 18:13:03.254451 |
1 |
16 |
4 |
825.042776 |
8321.487882 |
Woman |
Mokpo |
4 |
2020-03-16 18:13:03.254451 |
2 |
19 |
7 |
722.973158 |
9401.722171 |
Man |
Daegu |
13 |
2020-03-16 18:13:03.254451 |
3 |
4 |
3 |
294.938088 |
2920.488268 |
Woman |
Changwon |
6 |
2020-03-16 18:13:03.254451 |
4 |
8 |
2 |
813.653715 |
215.534590 |
Man |
Gangwon |
11 |
2020-03-16 18:13:03.254451 |
5 |
19 |
3 |
171.034324 |
8169.096889 |
Woman |
Gangwon |
1 |
2020-03-16 18:13:03.254451 |
6 |
18 |
2 |
837.204970 |
7394.767991 |
Woman |
Daegu |
14 |
2020-03-16 18:13:03.254451 |
7 |
3 |
2 |
612.606588 |
925.849913 |
Woman |
Daegu |
8 |
2020-03-16 18:13:03.254451 |
8 |
7 |
6 |
349.314482 |
3721.022476 |
Man |
Daejeon |
7 |
2020-03-16 18:13:03.254451 |
9 |
12 |
1 |
14.947452 |
729.567155 |
Woman |
Busan |
5 |
2020-03-16 18:13:03.254451 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
====================================================수업=============================================================
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# random 함수 import random print(random.random()) #0.0 <= x < 1.0 사이 print(random.randint(1,10)) # 1에서 10 사이의 정수중에서 난수값 리턴 print(random.uniform(10,20)) # min max 사이 float 리턴 print(random.randrange(10)) # 지정범위 int 리턴 print(random.choice([1,2,3,4,5])) # 리스트 내부에 있는 요소를 랜덤하게 선택 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
0.8207491878104047 8 17.36846874254026 9 3
In [224]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
list = [1,2,3,4,5] random.shuffle(list) # 리스트 요소들을 랜덤하게 섞기 print(list) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[5] [1, 2, 3, 4]
In [119]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
print(random.sample([1,2,3,4,5], k=2)) #리스트의 요소 중 k개 뽑기 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[3, 4]
In [249]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import numpy as np # numpy의 np.random # Numpy의 random 서브패키지에는 난수를 생성하는 다양한 명령을 제공 # rand : 0부터 1 사이의 균일 분포 # randn : 가우시안 표준 정규 분포(평균을 0으로 하고 표준편차를 1로 한것 : 가우시안) # randint : 균일 분포의 정수 난수
np.random.seed # seed를 통한 난수 생성 np.random.randint # 균일분포의 정수 난수 1개 생성 np.random.rand # 0부터 1사이의 균일분포(0부터 1까지 직선)에서 난수 매트릭스 array 생성 print(np.random.randn()) # 가우시안 표준 정규분포에서 난수 매트릭스 array 생성 print(np.random.randn()) # 가우시안은 0을 기준으로 좌우가 똑같은 분포인데 여기서 표준정규분포를 따르는게 randn print(np.random.randn()) print(np.random.randn()) print(np.random.randn())
np.random.shuffle # 기존의 데이터의 순서 바꾸기 np.random.choice # 기존의 데이터에서 sampling np.random.uniform # 실수출력
# 다차원의 array 형태로 정규분포(np.random.normal)로부터 무작위 샘플을 생성 np.random.normal(size=(2,3,4))
#앞(head) 또는 뒤(tail) (n=1) 가 나올 확률이 각 50%(p=0.5)인 동전 던지기를 20번(size) np.random.binomial(n=1, p=0.5, size=20) np.unique # 중복되지 않은 값의 리스트 출력 np.bincount # 발생하지 않은 사건에 대해서도 카운트 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
2.5921336769769807 0.011059085782480528 -1.7230908153757734 0.5202657944954446 0.020812361520378322
Out[249]:
<function numpy.bincount>
In [251]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
#난수 생성할 때 마다 값이 달라지는 것이 아니라, 누가, 언제 하든지 간에 똑같은 난수 np.random.seed(0) # 이 문구가 활성화되면 같은 값이 계속 출력된다.(난수생성 시 값을 유지하고 싶을 때 사용) np.random.rand(5) #array([0.46052915, 0.09624339, 0.2053374 , 0.49348483, 0.21180261]) 랜덤발생 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[251]:
array([0.5488135 , 0.71518937, 0.60276338, 0.54488318, 0.4236548 ])
In [225]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# numpy.random.randint(low, high=None, size=None) np.random.randint(6) # 0부터 5까지 랜덤한 숫자 1개 ( 6을 포함하지 않는다. 0~5까지 ) np.random.randint(1,20) #1부터 19까지 랜덤 숫자 1개 # np.random.seed(5) np.random.randint(10,size=10) #size는 난수의 숫자 display(np.random.randint(10,20, size=10)) # 10에서 19까지 10개를 추출(1차원 배열) display(np.random.randint(10,20, size=(3,5))) # 10~20 사이의 숫자를 랜덤으로 뽑는 3행 5열 (다차원 배열) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
array([19, 16, 19, 17, 17, 14, 16, 13, 18, 19])
array([[19, 18, 14, 17, 15], [15, 16, 14, 18, 13], [17, 12, 11, 13, 16]])
In [278]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import numpy as np print(np.random.rand(6)) # 0 부터 1사이의 균일분포에서 난수 매트릭스 array 생성 print(np.random.randn(3,2)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[0.95287067 0.0139484 0.53346568 0.30458203 0.88286 0.25062272] [[ 1.00554921 0.57468582] [ 1.55668004 -0.41891835] [-0.40971692 1.11637454]]
In [282]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
print(np.random.randn(6)) # 평균 0, 표준편차 1의 (가우시안) 표준정규분포 난수를 매트릭스 array생성 print(np.random.randn(3,2)) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[ 0.29839875 0.23766958 -0.15580481 -0.8595119 2.5290124 -0.84448494] [[ 0.89066205 0.77200376] [ 0.02031364 -1.58325014] [ 0.07544465 0.5921135 ]]
In [283]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 구매고객 이탈고객 이진 분류 모델 # 여러가지 변수 : 포스데이터 구매빈도 구매금액 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [291]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# numpy.random.choice(a, size=None, replace=True) # a : 배열이면 원래의 데이터, 정수이면 arange(a) 명령으로 데이터 생성 # size : 정수, 샘플 숫자 # replace : 불린, True이면 한번 선택한 데이터를 다시 선택 가능
# print(np.random.choice([1,2,3,4,5])) np.random.seed(3) np.random.choice(5,5, replace=False) #shuffle 명령과 같다.(replace는 저장하지 않는다 = False, 저장한다 = True) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[291]:
array([3, 4, 1, 0, 2])
In [296]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
list=[1,2,3,4,5] np.random.shuffle(list) print(list) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[4, 5, 2, 3, 1]
In [304]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
a = np.array([11,11,2,2,34,34]) index,count=np.unique(a,return_counts=True) #unique : 중복되는건 그 중에서 하나만(11이 2개, 2가 2개, 34가 2개니까 하나만 뽑음) # return_counts = True 는 print(index) #index : 중복된걸 하나로 뽑은걸 출력 print(count) #count : 중복되는 갯수를 각각 뽑아준다.(11이 2개, 2가 2개, 34가 2개 해서 2 2 2 출력) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[ 2 11 34] [2 2 2]
In [309]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 0부터 minlength -1 까지의 숫자에 대해 각각 카운트 np.bincount([1,1,2,2,2,3], minlength=6) # minlength는 6이라고 되어있는데 6-1을 해서 5가 된다. 이때 0,1,2,3,4,5 가 몇개있는지 출력한다. # 0은 0개 이므로 0출력, 1은 2개 이므로 2 출력, 3은 1개 있으므로 1 출력, 4는 없으므로 0, 5도 없으므로 0 출력) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[309]:
array([0, 2, 3, 1, 0, 0], dtype=int64)
In [312]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 1.0보다 크거나 2.0보다 작은 세 개의 수를 반환 : uniform 은 실수 출력 np.random.uniform(1.0,2.0,3) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[312]:
array([1.28352508, 1.69313792, 1.44045372])
In [318]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# random_sample은 uniform 함수의 최소값, 최대값을 각각 0.0, 1.0으로 지정한 것과 같음
mt1 = np.random.uniform(0.0,1.0,(2,3)) # 0.0 ~ 1.0 사이의 숫자를 2행 3렬로 뽑아준다. mt2 = np.random.random_sample((2,3)) # 2차원 배열 2행 3열 배열이 출력된다.(random_sample 은 0.0~1.0이 기본셋팅) print(mt1) print(mt2) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[[0.65047686 0.72393914 0.47508861] [0.59666377 0.06696942 0.07256214]] [[0.19897603 0.151861 0.10010434] [0.12929386 0.55327773 0.18781482]]
In [322]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import pandas as pd df = pd.DataFrame(np.random.rand(4,8)) df |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[322]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
열 너비 조절
행 높이 조절
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
0.892393 |
0.640177 |
0.143332 |
0.414127 |
0.049109 |
0.209373 |
0.730708 |
0.651123 |
1 |
0.478978 |
0.274781 |
0.652223 |
0.956450 |
0.435521 |
0.070133 |
0.057731 |
0.082871 |
2 |
0.959707 |
0.540761 |
0.837462 |
0.170034 |
0.260345 |
0.691978 |
0.895570 |
0.340688 |
3 |
0.064673 |
0.864120 |
0.290872 |
0.741082 |
0.158034 |
0.694963 |
0.841420 |
0.727152 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [361]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
import numpy as np import pandas as pd np.random.seed(0) index = [np.arange(5)] # 출력값 : [array([0, 1, 2, 3, 4])] : 괄호 안에 쓰인 숫자 미만의 연속적 숫자 출력 columns= ['A','B','C','D','E'] df = pd.DataFrame(np.arange(25).reshape(5,5),index,columns=columns) # index값과 columns 값 명시.(columns 는 =columns 가 없어도 가능) # reshape : 괄호 안에 5,5면 5행 5열로 바꿈. np.arange(25)한걸 reshape(5,5)로 만들어준다.
display(df)
df2 = pd.DataFrame(np.arange(50).reshape(5,10),index=[np.arange(5)],columns=['A','B','C','D','E','F','G','H','I','J']) display(df2)
df3 = pd.DataFrame(np.random.randint(50,size=50).reshape(5,10),index=[np.random.randint(10,size=5)],\ columns=['A','B','C','D','E','F','G','H','I','J']) display(df3)
df4 = pd.DataFrame(np.random.randint(50,size=50).reshape(5,10)*10,index=[np.random.randint(10,size=5)*10],\ columns=['A','B','C','D','E','F','G','H','I','J']) df5 = df3.apply(lambda x:x*10) # 모든 데이터값에 함수 다 적용 : apply() 함수(DataFrame 내장함수) display(df4) display(df5) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
A |
B |
C |
D |
E |
0 |
0 |
1 |
2 |
3 |
4 |
1 |
5 |
6 |
7 |
8 |
9 |
2 |
10 |
11 |
12 |
13 |
14 |
3 |
15 |
16 |
17 |
18 |
19 |
4 |
20 |
21 |
22 |
23 |
24 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
0 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
1 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
2 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
3 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
4 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
2 |
44 |
47 |
0 |
3 |
3 |
39 |
9 |
19 |
21 |
36 |
7 |
23 |
6 |
24 |
24 |
12 |
1 |
38 |
39 |
23 |
46 |
2 |
24 |
17 |
37 |
25 |
13 |
8 |
9 |
20 |
16 |
5 |
0 |
15 |
47 |
0 |
18 |
35 |
24 |
49 |
29 |
19 |
19 |
0 |
14 |
39 |
32 |
1 |
9 |
32 |
31 |
10 |
23 |
35 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
50 |
360 |
50 |
380 |
400 |
170 |
150 |
40 |
410 |
420 |
310 |
0 |
10 |
10 |
390 |
410 |
350 |
380 |
110 |
460 |
180 |
270 |
10 |
0 |
140 |
350 |
120 |
420 |
200 |
110 |
40 |
60 |
40 |
20 |
470 |
30 |
120 |
360 |
400 |
140 |
150 |
200 |
350 |
230 |
40 |
150 |
130 |
210 |
480 |
490 |
50 |
410 |
350 |
0 |
310 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 9열 선택9열 다음에 열 추가
- 10열 선택10열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
열 너비 조절
행 높이 조절
|
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
2 |
440 |
470 |
0 |
30 |
30 |
390 |
90 |
190 |
210 |
360 |
7 |
230 |
60 |
240 |
240 |
120 |
10 |
380 |
390 |
230 |
460 |
2 |
240 |
170 |
370 |
250 |
130 |
80 |
90 |
200 |
160 |
50 |
0 |
150 |
470 |
0 |
180 |
350 |
240 |
490 |
290 |
190 |
190 |
0 |
140 |
390 |
320 |
10 |
90 |
320 |
310 |
100 |
230 |
350 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [1]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 모의 데이터셋 만들기 : 선형 회귀 make_regression from sklearn.datasets import make_regression features, target, coefficients = make_regression(n_samples=100, n_features=3, n_informative=3, n_targets=1, noise=0.0, coef=True, random_state=1) print(features[:3]) print(target[:3]) |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
[[ 1.29322588 -0.61736206 -0.11044703] [-2.793085 0.36633201 1.93752881] [ 0.80186103 -0.18656977 0.0465673 ]] [-10.37865986 25.5124503 19.67705609]
In [213]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
#고객 구매데이터 생성(id, 성별, 연령, 지역, 상품, 가격, 구매시간) import numpy as np import pandas as pd import datetime import warnings warnings.filterwarnings('ignore')
a= np.random.randint(1,20, size=10) #1번에서 20번정도 구매하는 빈도가 생기는걸 정해줌(10개의 데이터) sr_a = pd.Series(a, name='Freq')
b=np.random.randint(1,9,size=10) sr_b=pd.Series(b,name='Prod')
c=np.random.rand(10)*1000 sr_c=pd.Series(c,name='Price')
d=np.random.rand(10)*10000 sr_d=pd.Series(d,name='Amount') #10000원정도에서 왔다갔다 하게 하려고 설정
e=np.random.choice(['Man','Woman'],size=10) sr_e=pd.Series(e, name='Sex')
f=np.random.choice(['Seoul','Dasjeon','Daegu','Busan','Changwon', 'Gangwon', 'Mokpo'],size=10) sr_f=pd.Series(f, name='Region')
g=np.random.choice(range(1,15) ,size=10,replace=False) sr_g=pd.Series(g, name='ID')
t=np.random.choice([datetime.datetime.now()],size=10) sr_t=pd.Series(t, name='time')
df=pd.concat([sr_a,sr_b,sr_c,sr_d,sr_e,sr_f,sr_g,sr_t],axis=1) df |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[213]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 4열 선택4열 다음에 열 추가
- 5열 선택5열 다음에 열 추가
- 6열 선택6열 다음에 열 추가
- 7열 선택7열 다음에 열 추가
- 8열 선택8열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
- 7행 선택7행 다음에 행 추가
- 8행 선택8행 다음에 행 추가
- 9행 선택9행 다음에 행 추가
- 10행 선택10행 다음에 행 추가
열 너비 조절
행 높이 조절
|
Freq |
Prod |
Price |
Amount |
Sex |
Region |
ID |
time |
0 |
8 |
3 |
880.585474 |
4629.761728 |
Man |
Busan |
11 |
2020-03-16 17:26:29.366941 |
1 |
15 |
8 |
892.120087 |
4633.522116 |
Woman |
Changwon |
6 |
2020-03-16 17:26:29.366941 |
2 |
19 |
7 |
983.294974 |
7767.981665 |
Man |
Mokpo |
9 |
2020-03-16 17:26:29.366941 |
3 |
19 |
7 |
929.954725 |
6916.538988 |
Man |
Gangwon |
10 |
2020-03-16 17:26:29.366941 |
4 |
4 |
1 |
4.910403 |
1691.256694 |
Woman |
Mokpo |
7 |
2020-03-16 17:26:29.366941 |
5 |
11 |
3 |
782.120612 |
5520.004515 |
Woman |
Busan |
8 |
2020-03-16 17:26:29.366941 |
6 |
3 |
5 |
210.629889 |
3805.656518 |
Woman |
Dasjeon |
12 |
2020-03-16 17:26:29.366941 |
7 |
11 |
6 |
971.372164 |
6349.280555 |
Man |
Changwon |
4 |
2020-03-16 17:26:29.366941 |
8 |
1 |
5 |
133.938599 |
5117.229699 |
Man |
Mokpo |
3 |
2020-03-16 17:26:29.366941 |
9 |
12 |
1 |
962.320016 |
7790.631363 |
Man |
Mokpo |
1 |
2020-03-16 17:26:29.366941 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
In [26]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
열 너비 조절
행 높이 조절
# 풀이 (Series 로 연결) import pandas as pd import numpy as np
a = np.arange(10)+1 sr_a = pd.Series(a, name='ID')
b = np.random.randint(1,9,size=10) sr_b = pd.Series(b,name='Prod')
c = np.random.rand(10)*1000 sr_c = pd.Series(c,name='Price')
df = pd.concat([sr_a,sr_b,sr_c],axis=1) df |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
Out[26]:
셀 전체 선택
- 0열 선택0열 다음에 열 추가
- 1열 선택1열 다음에 열 추가
- 2열 선택2열 다음에 열 추가
- 3열 선택3열 다음에 열 추가
- 0행 선택0행 다음에 행 추가
- 1행 선택1행 다음에 행 추가
- 2행 선택2행 다음에 행 추가
- 3행 선택3행 다음에 행 추가
- 4행 선택4행 다음에 행 추가
- 5행 선택5행 다음에 행 추가
- 6행 선택6행 다음에 행 추가
- 7행 선택7행 다음에 행 추가
- 8행 선택8행 다음에 행 추가
- 9행 선택9행 다음에 행 추가
- 10행 선택10행 다음에 행 추가
열 너비 조절
행 높이 조절
|
ID |
Prod |
Price |
0 |
1 |
3 |
825.697065 |
1 |
2 |
1 |
767.801062 |
2 |
3 |
1 |
721.247442 |
3 |
4 |
3 |
347.339150 |
4 |
5 |
4 |
587.931073 |
5 |
6 |
5 |
65.679356 |
6 |
7 |
4 |
642.628880 |
7 |
8 |
8 |
810.990842 |
8 |
9 |
7 |
155.669763 |
9 |
10 |
2 |
719.205828 |
- 셀 병합
- 행 분할
- 열 분할
- 너비 맞춤
- 삭제
'PYTHON' 카테고리의 다른 글
20200321 - 파이썬(미래 예측 머신러닝 모델(삼성전자, 이더리움)) (1) | 2020.03.21 |
---|---|
20200320 - 파이썬(타이타닉 생존자 예측 데이터 전처리) (0) | 2020.03.20 |
20200319 - 파이썬 (사이킷런, 판다스, 넘파이, 행렬, 희소행렬, 정규화, 표준화, 범주화) (0) | 2020.03.19 |
20200318 - 파이썬, 데이터프레임, 타이타닉, 분석 기초, 데이터 전처리 (0) | 2020.03.18 |
20200317 - 파이썬 Series(시리즈), 종속변수, 행렬, 행렬연산, 전치 (0) | 2020.03.17 |
댓글