블로그 이미지
shadowchaser
이곳 저곳 이것 저것

calendar

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

Notice

주식등 다양한 financial technique들은 visualize가 필요하다. 

Python에는 다양한 library가 있는데, 그중에서도 Matplotlib와 panda's visualization이 최고이다.

(물론 seaborn, cufflinks, plotly, bokeh, vincent 등의 훌륭한 라이브러리가 있긴하지만)

Matplotlib은 다양한 플랫폼들에서 png,jpg등과 같은 형식들의 작성을 지원하는 python 2D plotting이다. 


따라서 우선 Matplotlib에 대해서 알아보는 시간을 갖도록 한다.

본 강좌는 다음과 같이 구성하려한다.

  • Matplotlib
  • Pandas Visualization
  • Pandas Time Series Visualization


Matplotlib을 통해서는 다음과 같은 챠트들을 그릴 수 있다. 참고로 아래 챠트는 단 5줄로 그려진 차트이다. 대단하지 않은가?



진행하다가 궁금한 사항있으면 말씀주세요~ 즐겨찾기 꾸욱~

'Python > 02_Visualization with Matplotlib, Pandas' 카테고리의 다른 글

4. Pandas를 통한 시간별 시각화  (2) 2017.10.07
3. Pandas Visualization 개요  (0) 2017.10.07
2. Matplotlib 활용하기  (1) 2017.10.06
1. Matplotlib 기초  (0) 2017.10.06
posted by shadowchaser
2017. 10. 6. 03:14 Python/01_Pandas

Input & Output 강좌이다.

pandas는 정말 다양한 방법으로 엑셀은 물론, html, json파일,sql파일, csv형식등을 지원한다. 그렇기에 pandas가 대중적으로 많이 쓰이는 것이겠지.

금번엔 어떻게 읽고 쓰는지에 대해 간략히 설명해 보도록 하겠다.


들어가기 전에...

아래와 같이 일단 타이핑해보자. 

pd.까지 작성한뒤, shift+tab을 클릭하면 다양한 함수들을 확인할 수 있을 것이다.

위와 같이 준비한다. 또한, example 파일이 정상적으로 준비되었다면, jupyter notebook에서 read_csv('e 까지 누르고 tab버튼을 눌렀을 때, 자동완성이 될 것이다.


read_csv함수, to_csv함수

말그대로 csv 파일을 읽고 쓰는 기능을 


read_excel함수, to_excel함수

excel함수를 읽고 쓰는 함수이다. 아쉽게도 read함수를 통해 공식등이나 엑셀에서 갖고 있는 기능함수등은 사용할 수 없다. (플러그인은 별도로 있긴하지만 비추) sheet_name을 통해서 sheet를 설정해줄 수도 있다. 


read_html함수

가장 유용하게 쓰는 함수다. 웹에서 데이터들을 크롤링해와서 나만의 데이터를 만들때, 바로 read_html함수부터 시작이 되니까 말이다.



sqlalchemy를 를 통한 sql 활용

설명할까 말까 고민했는데, 성능을 향상시키기 위해서 데이터를 읽은뒤, 메모리에 올려두고 연산을 수행할 수 있다.
아래 스크립트를 숙지하도록 하자. 


'Python > 01_Pandas' 카테고리의 다른 글

4. Join, Merge, Concatenating  (0) 2017.10.06
3. Groupby 기능  (0) 2017.10.06
2. Missing Data 사용방법(dropna, fillna)  (0) 2017.10.06
1. Data Frame 사용방법  (0) 2017.10.06
posted by shadowchaser
2017. 10. 6. 03:03 Python/01_Pandas

굉장히 심플하고 자주쓰이는 세가지를 정리해보자.


Join, Merge, Concatenating!!


먼저 이해를 하려면 백문이 불여일견... 우선 아래와 같은 테이블을 작성해보도록 하자.

Concat

concat은 말 그대로 각 셀별로 붙이는 것이다.  세로로 그대로 붙일 수도 있고, 가로방향으로 붙일 수도 있다. 물론 세로로 계속 붙이는 것을 다 많이 하겠지..


Merge

Merge는 특정 key를 중심으로 하여 각 테이블간의 데이터를 합치는 것이다.

합치는 방법은 inner방식과 outer 방식이 있는데, inner 방식은 key를 중심으로 합치는 것이라고 생각하면되고,

outer방식은 key가 갖고 있는 모든 값들까지 생각해서 모두 합치는 방식이라고 생각하면 된다. 


일단 아래 처럼 left, right 테이블을 만들어보자.

이해가 가면 좋겠다. ㅜㅠ

inner, outer, 혹은 table을 기준으로 만들 수 있다.


join

mysql에서 사용하는 join과 완벽히 동일하다. 

궁금한 사항있으면 적어주세용.. 대답해드릴게용


'Python > 01_Pandas' 카테고리의 다른 글

5. Input & Output (파일 읽고 쓰기)  (0) 2017.10.06
3. Groupby 기능  (0) 2017.10.06
2. Missing Data 사용방법(dropna, fillna)  (0) 2017.10.06
1. Data Frame 사용방법  (0) 2017.10.06
posted by shadowchaser
2017. 10. 6. 02:56 Python/01_Pandas

Groupby기능에 대해서 논해보자.

groupby 기능은 우리가 알고 있는, sql에서 쓰는, groupby기능을 일컫는다.
Pandas에서 groupby를 어떻게 활용하는지 확인해보자.

일단 상기와 같이 입력하면 테이블와 같은 값이 나온다. 각각 인력별로 얼마씩 sales를 했는지 나오는데... 저렇게 된 모습은 그냥 정리를 한 것이지, 활용을 한다고는 볼 수 없다.

groupby 함수

pandas에서 groupby는 다음과 같이 다양하게 사용될 수 있다.
평균값, 합, 중간값은 물론...

다양한 유틸리티가 존재한다..

groupby().count(), groupby().max()등의 기능들이 있다.


groupby의 describe 함수

근데 이런 내용들은 모두 describe라는 곳에서 다 관리해준다. 진짜 유용하므로 필수 암기!! 적절히 확인하요 배치하기만 하면 된다.

한편 describe().transpose()를 통해 행과 열을 역전하여 볼 수 있으니까 참조... 

(버전별에 따라 기본 보기가 거꾸로인 곳도 있었다. 그러니까 당황해하지 마시길..)


'Python > 01_Pandas' 카테고리의 다른 글

5. Input & Output (파일 읽고 쓰기)  (0) 2017.10.06
4. Join, Merge, Concatenating  (0) 2017.10.06
2. Missing Data 사용방법(dropna, fillna)  (0) 2017.10.06
1. Data Frame 사용방법  (0) 2017.10.06
posted by shadowchaser
2017. 10. 6. 02:48 Python/01_Pandas

Missing Data

numpy와 pandas를 쓸때, NaN이 나오는 경우가 엄청많이 생긴다. 엑셀에서 값을 만들때 NaN들이 생기거나 Infinite 값들, 혹은 누락된 값이 생기는데 이러한 값들을 예외 처리하는 것은 정말 중요하다. 기본기라고 생각한다. 그러한 바에서 Missing Data를 관리하는 스킬을 필히 갖추도록 하자.

아래와 같이 Sample Data를 만들어보자.


Dropna 함수의 활용

굉장히 일목요연하다. dropna함수는 column내에 NaN값이 있으면 해당 내용은 필요없다 간주하고 삭제해버린다.
따라서 7번줄과 같은 경우 1행, 2행을 모두 삭제해버리는 것이다.

한편 dropna(axis=1)과 같은 경우 반대다. 열을 삭제해버린다.


dropna(thresh=2)라면 thresh는 threshold(임계값)을 설정할 수 있는데, NaN이 2개 이상 있는 것에 대해서만 삭제해버린다는 의미이다.


fillna()함수

fillna함수도 굉장히 유용한다 NaN을 특정 값으로 대체하는 기능을 한다. 특정 텍스트라던지, 평균값이라던지... 굉장히 유효한 함수니까 필히 암기하자.



'Python > 01_Pandas' 카테고리의 다른 글

5. Input & Output (파일 읽고 쓰기)  (0) 2017.10.06
4. Join, Merge, Concatenating  (0) 2017.10.06
3. Groupby 기능  (0) 2017.10.06
1. Data Frame 사용방법  (0) 2017.10.06
posted by shadowchaser
2017. 10. 6. 02:40 Python/01_Pandas

Pandas는 정말 많이 사용된다.  주식과 같은 Financial Chart를 자동화하여 만들때 기초중의 기초이다. 이에 따라서 Pandas를 활용하는 법을 연재하려한다.

오늘도 jupyter notebook을 통해서 공부해보자.


Data Frame 사용방법


위와 같이 5,4에 랜덤한 숫자로서 테이블을 채워보자

type을 보면 df['W']는 Series지만 전체 df를 선택하면 DataFrame의 속성임을 알 수 있다.

df.drop('E') 명령어를 통해 row을 삭제할 수도 있다.

보다시피 df.shape는 Data Frame의 크기를 안내하는 것이고,

loc에서 ['A']나 [0]이나 의미하는 것은 동일하다.

내가 특정내용만 원하서 보여주길 원한다면 다름과 같이 입력해주면 되겠다.


자 이번엔 좀더 복잡하게 만들어보자


numpy.random에서 random seed값을 통해 동일한 랜덤값을 추출할 수 있음을 잊지 말자.

df>0 은 0이상이 내용들에 대해 True/False로 나눠보라는 이야기다. 

조금더 복잡하게는 다음과 같이 응용될 수 있겠지.


Data Frame에서 Index 사용하기

조금더 Index를 고급지게 사용할 수 있다. excel을 쓰면 왠지 병합한 것처럼 표기할 수 있는 것인데. 일단 예제를 보자.

느낌이 왔는지 모르겠다. 일단 outside와 inside에 있는 값을 각 합쳐주고, list(zip)~구문을 통해서 G1/1~3, G2/1~3으로 만들어준 것이다.


data frame의 index.name을 통해서 각 Column 명을 변경할 수 있으며, 특정 cell의 값을 조회할 수 도 있다.




'Python > 01_Pandas' 카테고리의 다른 글

5. Input & Output (파일 읽고 쓰기)  (0) 2017.10.06
4. Join, Merge, Concatenating  (0) 2017.10.06
3. Groupby 기능  (0) 2017.10.06
2. Missing Data 사용방법(dropna, fillna)  (0) 2017.10.06
posted by shadowchaser
2017. 9. 28. 00:06 카테고리 없음

중간 중간 소수 민족이 운영하는 사당들이 있다. 이곳에서 판매들을 많이 하는데... 낚이지 않으셨으면 좋겠다.


이런 곳도 있고... 돌아다니다가.. 아오.. 너무 배고파서..


중국 특산품인 이 밥을 꼭 드시길 강추한다.!! 물만 따르면 알아서 보골보골~~ 끓어서 익혀주는데 꽤 맛있다! 


구채구는 인프라가 굉장히 잘되어 있어서 중간 중간에 걸어다닐 수 도 있고 버스를 타고 다닐 수도 있다.


정말 가보길 추천한다. 지금도 여운이 남는다.


팬더 폭포... 팬더처럼 생겼다나..


여기도 멋졌고...


여기도 멋졌다... 계속 멋져서.. 멋진게 계속 나왔음 정말..


우화호라고 해서..  5가지 빛이 보이고 10가지 색이 보인다나..


파노라마 영상..


이거 보시는 분도 감탄하고 계신가요?


계속 주욱 올라가면 진주탄에 도착하게 된다. 해발 2450m.. 하긴.. 옥룡설산에 비하면 아무것도 아니지..



돌아가는 길에...





한가지 아쉬운 것은 중국 티켓값이 너무 비싸다.


구채구 입장료가 대략 중국돈으로 500위안 정도가 된다. 즉, 우리나라돈으로 8.5만원 정도 하는 건데. 관광지 입장료만으로 8.5만원이라면 너무 비싼 것 아닌 가 싶다. 중국의 1인당 GDP가 세계 75위임을 감안할 때, 중국인에게는 정말 비쌀 것이라는 생각이 들었다.


택시를 타면, 병마용 가봤냐고 물어볼 때마다 중국돈 150위안(2.8만원정도)이라는 금액이 너무 비싸서 못 간다는 이야기를 종종듣기도 했다.

posted by shadowchaser
2017. 9. 28. 00:05 카테고리 없음

먼저 AAAAA 관광지라는 것부터 알고 넘어가자.


AAAAA, AAAA, AAA... 이런 관광지의 등급은 중국 국가에서 매년 관리하는 관광지 등급 시스템이다.


2007년 최초 설립 당시에는 66개에 불과했었지만, 현재는 247개로 늘어난다고 한다. 247개.. 참 많다.. 1년 동안 계속 여행만 해도 시간이 모자를듯..


맨 처음 66개 정해졌을 때의 리스트는 진짜 유명한 것들만으로 모여져 있었다. 특히 서안에는 병마용, 화청지, 진시황릉이 있었다.




중국인이 죽기 전에 꼭 가보고 싶어하는 관광지는 당연히 1위는 어디일까?


만리장성? 


동방명주? 


아니다.


바로 구채구(九寨沟)라고 불리 우는 곳이다.


사천성에 있는 구채구는 중국인들이 죽기전에 가봐야할 관광지로서 항상 첫번째로 꼽히는 곳이라고 한다. 또한 유네스코에서 지정한 세계문화유산으로도 지정되었다고 한다.




많은 한국 사람들이 여행을 이쪽 구채구로 여행을 간다. 


구채구 많은 정말 가볼만한 값어치를 하는 곳이다. 


구채구를 갈까 말까 한다면, 꼭 다녀오시라고 하고 싶다.



어찌 이렇게 아름다울까라고 생각하는 가운데, 하나의 전설이 귀에 들려온다.


용감한 산신이 어떤 어리따운 여신을 흠모한 나머지, 산신이 뜬 구름으로 거울을 만들어 그녀에게 선물을 하였다고 한다.


하지만 실수로 그 거울 보물을 떨어뜨려 산산조각이 났고, 결국 그 조각들이 108개의 호수로 변했다고 한다. 그리하여 거울처럼 투명한 호수가 된 것이라고 한다.


구채구는 큰 두 개의 산으로 나뉘어져 있는데, 한 개 산이름이 바로 산신의 이름인 '달과' 이며, 이 산을 마주보는 산이 바로 여신의 이름이 '색모'라고 한다.




요기에서 잤다. 그냥 자는 것으로 만족하는 것으로.. 타월이나 샴푸등은 직접가져오라고 한다.

아침 8시에 모였을 때, 이미 이정도의 사람들이 모여 있었다. 후덜덜


구채구 입구! 사람들이 정말~ 많다. 그래도 나름 줄을 잘 서 있는 듯? -.-;


하나하나의 모습이 모두 정말 그림 같다.


하나하나의 호수가 모두 다른 모습을 하고 있다.


수정폭포. 이곳의 해발 또한 매우 높다. 2295m. 


이런 모습의 폭포도 있고, 

숨죽이는 적막함을 제공했던 이런 폭포도 있었다.


아! 이곳의 물에 손을 닿으면 절대 안된다. 벌금을 내야한다고 한다.


저 뒤에 멋진 산에 걸쳐있는 구채구...


구채구에 대한 역사.. 3.95~2.3억년전에~~ 생겼다고 한다.


소스라치게 맑은 호수... 



그림 사이즈로 인해... 2탄에서 계속.... ㅜㅠ

posted by shadowchaser
2017. 9. 27. 00:14 IT/Xiaomi(小米)

샤오미 체중계 사용기


올해 2월에 구매한 샤오미 체중계 사용기를 적어보려 한다.



중국에서 구매했다. 배터리 4개가 포함되어 배달 되었다.


BMI까지 측정할 수 있는 샤오미 체중계 2가 나온 지금 샤오미 체중계 1의 사용기는 쓰는 것은 너무 늦은 감이 없지 않나 싶다. 


가격이 예전보다 더 떨어져서 99위안에 팔고 있다! (우리나라돈 17,000원 정도!)


체중 잰 이력을 삼성헬스와 너무 잘 연동이 된다. 정말 감탄 중이다.! 아침에 일어나서 샤워 후 바로 하는 활동이다. 덕분에 몸무게가 많이 줄었다.!


배터리도 엄청 오래 간다. 7개월 썼는데 뭐 이상없이 잘 쓰고 있다.


http://www.mi.com/kr/scale/ 에 다양한 내용을 확인해볼 수 있다.


결정을 찾을 수가 없다. 따라서 결론은 ★★★★★




샤오미 체중계 겉 외관 꽤 무겁다.


열면 다음과 같은 모습이 보이는데..


보증서와 배터리가 함께 동봉되어 있다.


비닐을 까면 배터리를 켜는 부분이 나온다는..


배터리를 넣는데, 위에 있는 세곳 설정을 하는 곳이 있다. 근은磅은 파운드이고, 斤은 500g 公斤은 1kg을 의미한다. 즉, 公斤를 선택하자!


몸을 들면 정말 저렇게 나온다. 빛의 명암에 자동반응한다. 저 사람의 경우 110.3인데 저 무게는 실제로 55.15라는 의미이다. 중국의 몸무게 기준은 한국과 좀 다르다 --; (斤은 500g 公斤은 1kg)


삼성헬스에 연결된 모습. MI_SCALE이라고 뜬다. 검색하는 것도 어렵지 않다. 한번 등록하면 끝.


엄청 잘쓰고 있다.




http://enjoyiot.tistory.com/admin/entry/post/?id=84&type=post&returnURL=%2Fmanage%2Fposts


posted by shadowchaser
2017. 9. 21. 23:48 Journey/중국 - 시안(西安)


중국 정주(郑州) 주변에는 소림사(小林寺), 용문석굴(용문석굴), 운태산(云台山) 등 여러가지 유명한 것들이 많다.


그리하여 소림사에 가면 무엇좀 느껴질까 해서 지난 2월 소림사, 용문석굴, 운태산의 코스... 금요일밤~월요일 새벽.. 2박 2일의 코스로 정주에 다녀왔다.


날씨가 좀 안 좋았던 게 아쉬웠다. 너무 아쉬웠다. 날씨가 더 맑았었더라면.. 


하긴 정주는 중국 서안 보다 대기오염이 심각한 곳으로 유명하다.


중국 서안에서 정주까지 필요한 시간은 약 6시간. 오전 6시부터 관광을 하기 시작했다.


당연히 携程(ctrip)을 통해서 예약했고, 기차비 빼고, 1박 2일의 일정으로 600원 정도의 패키지로 구성이 되어있었다.


600위안에 호텔+매식사+가이드+버스+소림사+용문석굴+운태산... 의 일정이 모두 포함!!


중국어 조금이라도 할 줄아신다면 ctrip에서 예약하세요. 돈 훨씬 절약됩니다. -_-;;


T194 기차를 타야했는데.. 역시나 모르는 사람들끼리도 마작을 하기시작한다..


正在检票进站! 티켓검사하며 들어가세요!  사람들이 우루루루 몰린다.


너무 나쁜 좌석에서 자면 다음날 너무 힘들기 때문에, 2층짜리로 구했다. 229원이니까 약 4만원 정도!


그리고 소림사에 도착했다. 입장료는 100위안! (17,000원 정도)


생각보다 소림사 내에는 볼 것이 많진 않았다. 탑림은 승려들을 모셔둔 곳인데.. 사진을 찍지 말아달라나... 재수없다고..


사람들이 너무 손으로 만져서 닳아 없어져버렸다~


그리고 간 곳은 용문석굴! 오른쪽에 작은 티켓들이 보이는데.. 이동할때마다 떼어간다.


용문석굴도 100위안 짜리다.


캬 용문석굴을 실제로 바라보면 다음과 같다. 파노라마 기능이 잘쓰인다.

실제가보면 많은 부처의 얼굴이 유실당했는데, 값비싸게 팔린다고 하더이다.


크기의 웅장함에 놀랠만 하다.


다양한 굴마다 부처님이 모셔져있다.


그리고 찾아간 곳은 운태산!

물이 엄청 맑다.


분경협곡이라고 부르기도 한다. 그리고 홍석협이라고 불리는 것처럼... 돌이 빨갛다.


스케일에 놀라고..


자연경관에 또 놀랜다.


오른쪽에 있는 중국친구가 많이 도와주었다. 증권사에서 일한다나..


멋진 폭포도 있었다.


돌들이 이루고 있는 하나하나의 결을 봐보면, 자연의 거대함을 느낄 수 있다.


화장실이아니라 회장실..?; 징런지....라니.. 그냥 조선족에게 읽힌 것 같은데.. --;


posted by shadowchaser