블로그 이미지
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 29 30

Notice

'Python/01_Pandas'에 해당되는 글 5

  1. 2017.10.06 5. Input & Output (파일 읽고 쓰기)
  2. 2017.10.06 4. Join, Merge, Concatenating
  3. 2017.10.06 3. Groupby 기능
  4. 2017.10.06 2. Missing Data 사용방법(dropna, fillna)
  5. 2017.10.06 1. Data Frame 사용방법
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
prev 1 next