4-1 Iris flower data 텍스트 파일 엑셀 처리기법 by codingart

View this thread on steempeak.com
· @codingart · (edited)
$0.49
4-1 Iris flower data 텍스트 파일 엑셀 처리기법
Iris data를 엑셀로 읽어들여 그래프를 작성해보기로 한다. Iris 데이터는 인터넷에서 쉼표로 분리된 텍스트 파일 형식으로 쉽게 구할 수 있으며 워드패드로 iris.txt 라는 파일명과 확장자로 저장하였다. 이 텍스트형 데이터 파일을 엑셀에서 읽어 들이자.

![noname01.png](https://cdn.steemitimages.com/DQmaaz5PwTF6rxkrvLTjQFViDcFFm6e8rmykDGqic7tT4Bx/noname01.png)

Iris 데이터 워드패드 텍스트 파일 내용 요약은 다음과 같다.

![noname02.png](https://cdn.steemitimages.com/DQmZpjAs5YHDUe2FQtaTLwYKLpsLKtB3WeLfe85T1NA9ADS/noname02.png)

엑셀은 보급률이 높은 소프트웨어여서 데이터를 읽어 들이는 능력이 탁월하여 아나콘다에서도 pandas 라이브러리 모듈에 의해 엑셀 데이터 읽어들이기를 지원하고 있다. 해보 면 아예 읽기 전에 데이터 파일을 사전에 보여주므로 쉽게 처리할 수 있다.

다음과 같이 3단계를 거치게 된다. 첫 언어 지정 단계에서는 한국어를 선택하면 된다. 영어를 선택해도 무방하다. 아울러 하단에 미리 보기 창에서 데이터를 볼 수 있다.

![noname03.png](https://cdn.steemitimages.com/DQmcB3HnnR2F4NCHNr2QxsNw481Za8CMTuRWcLkJ1N1mMZB/noname03.png)

두 번째 데이터간 분리 기호를 확인하도록 하자. 미리 보기 창에서도 보이는데 쉼표를 선택한다.

![noname04.png](https://cdn.steemitimages.com/DQmQhZidNif3Lv9hAkgyQppsYKcHc2TpPWWfNzLi4DaWWB7/noname04.png)

세 번째 일반으로 지정하면 숫자는 숫자 닐짜는 날짜 나머지는 텍스트로 처리해서  읽어들인다.

![noname05.png](https://cdn.steemitimages.com/DQmXk9zPttwccMqaj3HwQ1rjAN3WbeFjqKhX5P2eikNcbkH/noname05.png)

Iris flower 데이터로부터 꽃의 통계적 특성에 대해서 엑셀의 기능을 사용하여 간단한 검토를 해보자. 각 꽃의 종류별로 꽃받침과 꽃잎의 평균길이와 폭을 계산해 보자. AVERAGE() 함수를 사용한다. 괄호안에 컬럼 데이터를 활성화 시켜주면 된다.

![noname06.png](https://cdn.steemitimages.com/DQmbUwJAkN9aywPu1oBdHwYvkEqtQeun6SBJUT34FoDEuxp/noname06.png)

평균값을 통계 처리하되 소숫점 이하 데이터는 반올림하여 첫 자리까지만 표기하도록 하자. 셀 활성화 상태에서 마우스 오른 쪽 버튼을 누르면 메뉴에서 셀서식을 택하여 숫자를 누르고 들어가서 자리수를 설정한다. 

다음과 같이 평균 값 처리 결과가 얻어졌다. 특이하게 보이는 점은 setosa 의 꽃잎 크기가 유달리 작아 보인다. 혹 엑셀 작업 실수인가 하고 체크해 보았으나 실제로 작았다. 아무리 머신 러닝 코드 공부를 해도 이와 같은 실제적인 통계 상황을 느끼지 못할 것이다. 그래서 머신 러닝과는 동떨어진 듯하게 느껴질지 모르나 현실감각 회복 차원에서 반드시 통계 처리를 해보아야 할 듯하다. 그렇다고 1930년대 Fisher 교수와 Andrew 교수처럼 주판알 튕길 것은 아니지만...

![noname07.png](https://cdn.steemitimages.com/DQmTHdLMvyhi5znVW1XK72pQVhH1oVcC3uHTrgSEh948G9s/noname07.png)

다음은 setosa 꽃의 꽃받침 최대 최소값을 조사한 후 빈도수 조사를 위해 구간을 설정하자. 이때 구간 값을 넣는 cell들을 비행기에서 승객 머리 위의 짐을 넣는 설합처럼 bin 이라 한다. 즉 4.5 이하, 4.8 이하,... 가 되는 것이다.
빈도수 아래에 5칸을 클릭 활성화 시킨 상태에서 ‘=FREQUENCY(∙∙∙’를 입력하자. 소괄호를 닫기 전에 Cntr+Shift+Enter 키를 누르면 활성화 되어 있던 공간에 빈도수 값으로 채워짐을 볼 수 있다. 아우러 입력 창에서 보면 중괄호가 덧씌워져 있음을 볼 수 있다.

![noname08.png](https://cdn.steemitimages.com/DQmX4YwKWfhsNH5LcJ89GfTdaeh4qz2defFKACN6zpXzRkV/noname08.png)

BIN 설정 및 빈도수 밑의 5칸씩을 활성화 시킨 후 다음과 같이 추천차트를 그려보자.
이 정도면 정규분포라 할수 있을 것이다. 이와는 별도로 NORMINV 명령을 사용 인위적으로 데이터를 만들어서 정규분포 그래프를 여러번 그려 보았으나 이정도 그리기가 불가능했었다. 차라리 자연이 준 데이터를 그대로 이용하는 것이 낳다는 생각이 든다.

![noname09.png](https://cdn.steemitimages.com/DQmUZbmr4aqgYDjHaPUv4WGg7WxJVPCBnhKY31J2xto9mRg/noname09.png)

아래에 첨부된 iris 데이터를 복사하여 워드패드에서 텍스트 확장자로 저장 후 엑셀로 읽어들여  코드를 실습해 보자.

iris 데이터
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
5.4,3.9,1.7,0.4,Iris-setosa
4.6,3.4,1.4,0.3,Iris-setosa
5.0,3.4,1.5,0.2,Iris-setosa
4.4,2.9,1.4,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa
5.4,3.7,1.5,0.2,Iris-setosa
4.8,3.4,1.6,0.2,Iris-setosa
4.8,3.0,1.4,0.1,Iris-setosa
4.3,3.0,1.1,0.1,Iris-setosa
5.8,4.0,1.2,0.2,Iris-setosa
5.7,4.4,1.5,0.4,Iris-setosa
5.4,3.9,1.3,0.4,Iris-setosa
5.1,3.5,1.4,0.3,Iris-setosa
5.7,3.8,1.7,0.3,Iris-setosa
5.1,3.8,1.5,0.3,Iris-setosa
5.4,3.4,1.7,0.2,Iris-setosa
5.1,3.7,1.5,0.4,Iris-setosa
4.6,3.6,1.0,0.2,Iris-setosa
5.1,3.3,1.7,0.5,Iris-setosa
4.8,3.4,1.9,0.2,Iris-setosa
5.0,3.0,1.6,0.2,Iris-setosa
5.0,3.4,1.6,0.4,Iris-setosa
5.2,3.5,1.5,0.2,Iris-setosa
5.2,3.4,1.4,0.2,Iris-setosa
4.7,3.2,1.6,0.2,Iris-setosa
4.8,3.1,1.6,0.2,Iris-setosa
5.4,3.4,1.5,0.4,Iris-setosa
5.2,4.1,1.5,0.1,Iris-setosa
5.5,4.2,1.4,0.2,Iris-setosa
4.9,3.1,1.5,0.2,Iris-setosa
5.0,3.2,1.2,0.2,Iris-setosa
5.5,3.5,1.3,0.2,Iris-setosa
4.9,3.6,1.4,0.1,Iris-setosa
4.4,3.0,1.3,0.2,Iris-setosa
5.1,3.4,1.5,0.2,Iris-setosa
5.0,3.5,1.3,0.3,Iris-setosa
4.5,2.3,1.3,0.3,Iris-setosa
4.4,3.2,1.3,0.2,Iris-setosa
5.0,3.5,1.6,0.6,Iris-setosa
5.1,3.8,1.9,0.4,Iris-setosa
4.8,3.0,1.4,0.3,Iris-setosa
5.1,3.8,1.6,0.2,Iris-setosa
4.6,3.2,1.4,0.2,Iris-setosa
5.3,3.7,1.5,0.2,Iris-setosa
5.0,3.3,1.4,0.2,Iris-setosa
7.0,3.2,4.7,1.4,Iris-versicolor
6.4,3.2,4.5,1.5,Iris-versicolor
6.9,3.1,4.9,1.5,Iris-versicolor
5.5,2.3,4.0,1.3,Iris-versicolor
6.5,2.8,4.6,1.5,Iris-versicolor
5.7,2.8,4.5,1.3,Iris-versicolor
6.3,3.3,4.7,1.6,Iris-versicolor
4.9,2.4,3.3,1.0,Iris-versicolor
6.6,2.9,4.6,1.3,Iris-versicolor
5.2,2.7,3.9,1.4,Iris-versicolor
5.0,2.0,3.5,1.0,Iris-versicolor
5.9,3.0,4.2,1.5,Iris-versicolor
6.0,2.2,4.0,1.0,Iris-versicolor
6.1,2.9,4.7,1.4,Iris-versicolor
5.6,2.9,3.6,1.3,Iris-versicolor
6.7,3.1,4.4,1.4,Iris-versicolor
5.6,3.0,4.5,1.5,Iris-versicolor
5.8,2.7,4.1,1.0,Iris-versicolor
6.2,2.2,4.5,1.5,Iris-versicolor
5.6,2.5,3.9,1.1,Iris-versicolor
5.9,3.2,4.8,1.8,Iris-versicolor
6.1,2.8,4.0,1.3,Iris-versicolor
6.3,2.5,4.9,1.5,Iris-versicolor
6.1,2.8,4.7,1.2,Iris-versicolor
6.4,2.9,4.3,1.3,Iris-versicolor
6.6,3.0,4.4,1.4,Iris-versicolor
6.8,2.8,4.8,1.4,Iris-versicolor
6.7,3.0,5.0,1.7,Iris-versicolor
6.0,2.9,4.5,1.5,Iris-versicolor
5.7,2.6,3.5,1.0,Iris-versicolor
5.5,2.4,3.8,1.1,Iris-versicolor
5.5,2.4,3.7,1.0,Iris-versicolor
5.8,2.7,3.9,1.2,Iris-versicolor
6.0,2.7,5.1,1.6,Iris-versicolor
5.4,3.0,4.5,1.5,Iris-versicolor
6.0,3.4,4.5,1.6,Iris-versicolor
6.7,3.1,4.7,1.5,Iris-versicolor
6.3,2.3,4.4,1.3,Iris-versicolor
5.6,3.0,4.1,1.3,Iris-versicolor
5.5,2.5,4.0,1.3,Iris-versicolor
5.5,2.6,4.4,1.2,Iris-versicolor
6.1,3.0,4.6,1.4,Iris-versicolor
5.8,2.6,4.0,1.2,Iris-versicolor
5.0,2.3,3.3,1.0,Iris-versicolor
5.6,2.7,4.2,1.3,Iris-versicolor
5.7,3.0,4.2,1.2,Iris-versicolor
5.7,2.9,4.2,1.3,Iris-versicolor
6.2,2.9,4.3,1.3,Iris-versicolor
5.1,2.5,3.0,1.1,Iris-versicolor
5.7,2.8,4.1,1.3,Iris-versicolor
6.3,3.3,6.0,2.5,Iris-virginica
5.8,2.7,5.1,1.9,Iris-virginica
7.1,3.0,5.9,2.1,Iris-virginica
6.3,2.9,5.6,1.8,Iris-virginica
6.5,3.0,5.8,2.2,Iris-virginica
7.6,3.0,6.6,2.1,Iris-virginica
4.9,2.5,4.5,1.7,Iris-virginica
7.3,2.9,6.3,1.8,Iris-virginica
6.7,2.5,5.8,1.8,Iris-virginica
7.2,3.6,6.1,2.5,Iris-virginica
6.5,3.2,5.1,2.0,Iris-virginica
6.4,2.7,5.3,1.9,Iris-virginica
6.8,3.0,5.5,2.1,Iris-virginica
5.7,2.5,5.0,2.0,Iris-virginica
5.8,2.8,5.1,2.4,Iris-virginica
6.4,3.2,5.3,2.3,Iris-virginica
6.5,3.0,5.5,1.8,Iris-virginica
7.7,3.8,6.7,2.2,Iris-virginica
7.7,2.6,6.9,2.3,Iris-virginica
6.0,2.2,5.0,1.5,Iris-virginica
6.9,3.2,5.7,2.3,Iris-virginica
5.6,2.8,4.9,2.0,Iris-virginica
7.7,2.8,6.7,2.0,Iris-virginica
6.3,2.7,4.9,1.8,Iris-virginica
6.7,3.3,5.7,2.1,Iris-virginica
7.2,3.2,6.0,1.8,Iris-virginica
6.2,2.8,4.8,1.8,Iris-virginica
6.1,3.0,4.9,1.8,Iris-virginica
6.4,2.8,5.6,2.1,Iris-virginica
7.2,3.0,5.8,1.6,Iris-virginica
7.4,2.8,6.1,1.9,Iris-virginica
7.9,3.8,6.4,2.0,Iris-virginica
6.4,2.8,5.6,2.2,Iris-virginica
6.3,2.8,5.1,1.5,Iris-virginica
6.1,2.6,5.6,1.4,Iris-virginica
7.7,3.0,6.1,2.3,Iris-virginica
6.3,3.4,5.6,2.4,Iris-virginica
6.4,3.1,5.5,1.8,Iris-virginica
6.0,3.0,4.8,1.8,Iris-virginica
6.9,3.1,5.4,2.1,Iris-virginica
6.7,3.1,5.6,2.4,Iris-virginica
6.9,3.1,5.1,2.3,Iris-virginica
5.8,2.7,5.1,1.9,Iris-virginica
6.8,3.2,5.9,2.3,Iris-virginica
6.7,3.3,5.7,2.5,Iris-virginica
6.7,3.0,5.2,2.3,Iris-virginica
6.3,2.5,5.0,1.9,Iris-virginica
6.5,3.0,5.2,2.0,Iris-virginica
6.2,3.4,5.4,2.3,Iris-virginica
5.9,3.0,5.1,1.8,Iris-virginica
👍  , , , , , , , , , , , , , , , , , ,
properties (23)
post_id69,878,851
authorcodingart
permlink4-1-iris-flower-data
categorykr
json_metadata{"tags":["kr","kr-new","jjangjjangman","kr-dev"],"image":["https:\/\/cdn.steemitimages.com\/DQmaaz5PwTF6rxkrvLTjQFViDcFFm6e8rmykDGqic7tT4Bx\/noname01.png","https:\/\/cdn.steemitimages.com\/DQmZpjAs5YHDUe2FQtaTLwYKLpsLKtB3WeLfe85T1NA9ADS\/noname02.png","https:\/\/cdn.steemitimages.com\/DQmcB3HnnR2F4NCHNr2QxsNw481Za8CMTuRWcLkJ1N1mMZB\/noname03.png","https:\/\/cdn.steemitimages.com\/DQmQhZidNif3Lv9hAkgyQppsYKcHc2TpPWWfNzLi4DaWWB7\/noname04.png","https:\/\/cdn.steemitimages.com\/DQmXk9zPttwccMqaj3HwQ1rjAN3WbeFjqKhX5P2eikNcbkH\/noname05.png","https:\/\/cdn.steemitimages.com\/DQmbUwJAkN9aywPu1oBdHwYvkEqtQeun6SBJUT34FoDEuxp\/noname06.png","https:\/\/cdn.steemitimages.com\/DQmTHdLMvyhi5znVW1XK72pQVhH1oVcC3uHTrgSEh948G9s\/noname07.png","https:\/\/cdn.steemitimages.com\/DQmX4YwKWfhsNH5LcJ89GfTdaeh4qz2defFKACN6zpXzRkV\/noname08.png","https:\/\/cdn.steemitimages.com\/DQmUZbmr4aqgYDjHaPUv4WGg7WxJVPCBnhKY31J2xto9mRg\/noname09.png"],"app":"steemit\/0.1","format":"markdown"}
created2019-02-08 07:38:27
last_update2019-02-08 07:39:00
depth0
children2
net_rshares1,062,212,881,712
last_payout2019-02-15 07:38:27
cashout_time1969-12-31 23:59:59
total_payout_value0.376 SBD
curator_payout_value0.111 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length7,148
author_reputation43,987,910,559,504
root_title"4-1 Iris flower data 텍스트 파일 엑셀 처리기법"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
author_curate_reward""
vote details (19)
@bukio ·
짱짱맨 호출에 응답하여 보팅하였습니다. 
properties (22)
post_id69,879,226
authorbukio
permlinkre-bukio-jjangjjangman-1549612446211
categorykr
json_metadata{"tags":["bukio","jjangjjangman"],"app":"steemer\/1.0"}
created2019-02-08 07:54:06
last_update2019-02-08 07:54:06
depth1
children0
net_rshares0
last_payout2019-02-15 07:54:06
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length22
author_reputation12,334,203,545,676
root_title"4-1 Iris flower data 텍스트 파일 엑셀 처리기법"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000
@tcgagency ·
http://mgnet.me/dwtCcGW
properties (22)
post_id69,879,311
authortcgagency
permlinkre-codingart-4-1-iris-flower-data-20190208t075740311z
categorykr
json_metadata{"tags":["kr"],"links":["http:\/\/mgnet.me\/dwtCcGW"],"app":"steemit\/0.1"}
created2019-02-08 07:57:45
last_update2019-02-08 07:57:45
depth1
children0
net_rshares0
last_payout2019-02-15 07:57:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 SBD
curator_payout_value0.000 SBD
pending_payout_value0.000 SBD
promoted0.000 SBD
body_length23
author_reputation1,066,050,498
root_title"4-1 Iris flower data 텍스트 파일 엑셀 처리기법"
beneficiaries[]
max_accepted_payout1,000,000.000 SBD
percent_steem_dollars10,000