파이썬에서 데이터 통계를 쉽게 사용하기 위한 라이브러리인 판다스의 첫번째 포스팅이다. 

넘파이를 사용해도 되지만 기본적으로 넘파이는 통계에 대한 깊은 이해가 필요 하기 떄문에 나같은 초심자는 판다스가

사용하기 쉽다. (물론 그렇다고 통계 공부를 게을리 하라는 얘기는 아님.)

 

그럼 시작해 보겠다. 

 

먼저 당연히 라이브러리를 임포트 하고 딕셔너리로 데이터프레임을 만든다.

 

데이터 프레임은 

pd.DataFrame('선언한 dictionary이름)

으로 주로 만든다. 또는 다음과 같이

 

넘파이 array를 선언한 다음 만들 수도 있는데 이는 곧 csv파일을 통해서 DataFrame을 선언 할 수 있음을 의미한다. 다음 시간에는 csv파일을 통해서 DataFrame을 만드는 것과 활용을 알아 보도록 하겠다. 

데이터의 형태를 알아 보기 위해서 다음과 같이 shape함수를 사용 할 수 있고

인덱스의 길이을 알아 보기 위해서 index와 len을 혼합해서 사용 할 수 있으며 컬럼의 이름을 알아 볼 수도 있다.

이를 응용하면 len과 columns를 활용하여 컬럼의 길이를 알아 볼 수도 있을 것이다.  

 

 

그리고 dataframe의 indexing즉, 선택을 위해서 iloc과 loc을 사용 할 수 있으며 두 인덱서의 차이는 

iloc은 정수를 사용하여 인덱싱 하는 것이고 loc은 문자를 사용하여 인덱싱 하는 것이다.

iloc의 경우 iloc[x,y]이렇게 사용하거나 iloc[x]와 같이 사용하는데

하나만 사용 할 경우 데이터 프레임의 행을 선택하는 것이다. 

그리고 iloc[x.y:]니 iloc[,y:]와 이 indexer처럼도 사용할 수 있는데 위의 그림을 참고 하면 될 것이다. 

columns를 drop해야 할 경우 다음과 같이 column을 명명하고 drop하는 것이 일반적이다.

 

이번에 기본적인 dataframe의 사용법을 알아 보았으니 다음에 직접 데이터를 입력한 다음 필요한 데이터를 가공하여 사용해 보도록 하겠다. 그리고 그과정에서 사용되는 간단한 판다스 명령어를 살펴보자. 

'머신러닝 > 기초 문법' 카테고리의 다른 글

Python경로 관련  (0) 2020.12.08
0. 파이썬 출력 end=''  (0) 2019.06.20
0. 파이썬 출력print and sep  (0) 2019.06.20
가상환경 만들고 삭제하기  (0) 2019.02.14
9. 함수  (0) 2019.02.12

print(1, end='') # end에 빈 문자열을 지정하면 다음 번 출력이 바로 뒤에 오게 됨
print(2, end='')
print(3)

'머신러닝 > 기초 문법' 카테고리의 다른 글

Python경로 관련  (0) 2020.12.08
판다스 1. 데이터프레임 만들기/기본사용/인덱싱  (0) 2019.09.27
0. 파이썬 출력print and sep  (0) 2019.06.20
가상환경 만들고 삭제하기  (0) 2019.02.14
9. 함수  (0) 2019.02.12

이제 그냥 생각 날 때마다 포스팅 하기로 했어요 ㅎㅎ 그래야 알아보기도 쉽고. 그럴 것 같음..

 

print(1,2,3,sep=',')

 

sep = '/'

sep : seperate의 약자.

 

'머신러닝 > 기초 문법' 카테고리의 다른 글

판다스 1. 데이터프레임 만들기/기본사용/인덱싱  (0) 2019.09.27
0. 파이썬 출력 end=''  (0) 2019.06.20
가상환경 만들고 삭제하기  (0) 2019.02.14
9. 함수  (0) 2019.02.12
8. FOR문  (0) 2019.02.11

- pip install numpy

로 numpy 인스톨시 에러 발생

Import error: DLL load failed : 지정된 모듈을 찾을 수 없습니다. 


Numpy install 시 conda로 해야 함. 

아나콘다로 인스톨 했을 시애만 해당하는 건지는 모르겠으나 일단 그러함 아마 관련 패키지까지 인스톨해야 해서 그런 것 같음. 따라서 다음과 같은 명령어를 쳐야 함. 

- conda install numpy



가상환경 만들기 - 앞에서 언급했다시피, 파이썬에서 개발의 용이성(?) 다양성(?)을 위해서 가상환경을 만들어서 개발하여야 한다고 했다. (반말이 작성하기 편하다....) 그런데 이번에 Surface를 중고로 사서 설치를 하는데 정작 웹을 보고 따라하고 있다. 이 무슨 상황인가 ㅎㅎㅎ 그래서 블로그에 포스팅하고자 한다.  

1. 가상환경 만드는 법.

일단 아나콘다(에 있는 파이썬)는 설치 했다고 가정한다. 아나콘다의 설치는 그냥 Next, Next고 Path를 자동으로 잡아주겠냐에 체크를 해주면 된다. 그리고 설치하면 된다. 

2. IDE (VS_CODE) 설치

IDE 설치하고 싶지 않으면 넘어가도 된다. iPython, Jupyter notebook이나 spyder 같은 IDE가 기본으로 존재하니깐. 그냥 아나콘다 Prompt를 실행해서 설치하면 된다.

3. Anaconda prompt를 관리자 권한으로 킴.

3.1. 가상환경 만들기

$ conda -n "envname" python = "버전" #괄호안은 자기가 마음대로 써도 됨. 

3.2. 잘못 만들었을 경우, 가상환경 지우기

$ conda remove --name "지울 가상 환경 이름" --all #괄호안은 자기가 마음대로 써도 됨. 

주) VS_CODE를 IDE로 사용 할 경우, Pompt가 powershell이면 (가상환경)c:\ 이렇게 뜨지 않는다. prompt를 cmd로 변경해야 한다. 이것 때문에 해맸다.

Ubuntu는 처음에 cmd로 설정이 되지만 windows는 powershell로 설정이 된다. customize어쩌구를 클릭하면 cmd로 설정하는 창이 나온다.

'머신러닝 > 기초 문법' 카테고리의 다른 글

0. 파이썬 출력 end=''  (0) 2019.06.20
0. 파이썬 출력print and sep  (0) 2019.06.20
9. 함수  (0) 2019.02.12
8. FOR문  (0) 2019.02.11
7. While. Break, Continue  (0) 2019.02.10

numpy 업그레이드 해야함.

 

pip install -upgrade numpy

 

엑세스가 거부되었습니다. --user옵션 치라고 나올 시, 얌전하게 따라서 --user option 쳐주면 됨.

pip install --upgrade numpy --user

 

import tensorflow as tf 가 에러 없이 출력되나 확인

 

지금까지는 프로그램의 조각들만 살펴 보았지만 지금부터는 조금 더 큰 프로그램들을 살펴 볼 것입니다. 

<프로그램 처리 --> 함수 처리 -> 뭔가를 실행 --> 프로그램 처리 됨 >

이러한 방식으로 지금까지보다 조금 더 큰 방식을 처리 할 수 있습니다. 즉, 함수 자체에 프로그램을 넣을 수 있는 것입니다. 또, 함수 자체에도 종류가 있으니(함수애도 사용되는 빈도는 차이가 있습니다만..)알아 두시면 큰 도움이 됩니다. 그러면 지금부터 함수에 대해서 간단히 알아 보도록 하겠습니다. 

함수의 정의 방식은 간단히 

def 함수명(a,b):

code


이렇게 정의 하시면 됩니다. 

Main, 즉, 함수에 들어가지 않는 Code에서 전달되는 측의 변수는 a,b로 쓸 수 있고, Call 해야 함수를 사용 할 수 있습니다. 즉, main 측에서 function의 이름을 써야 사용 할 수 있다는 것입니다. 하지만 매개변수 [함수의 ( ) 안에 들어가는 변수]가 없는 함수도 있으므로, function을 부를 때 사용하지 않을 수도 있습니다. 

말로 하기만 하면 복잡하니 코드를 직접 보면서 설명 하도록 하겠습니다.

1. 입력 값x 출력 값x

def function_a():
    print("no_in and out")


function_a()

no_in and out

매개변수도, 전달값도 없는 변수는 위와 같이 사용합니다. 함수의 안에 아무 것도 없으니, 불러 올 때도 함수의 이름만 쓰면, 함수가 불러지겠죠? 그리고, 함수의 안에 있는 내용도 불러 질 것 같습니다. 그리고 실제로 그렇게 됩니다. 간단하기 때문에 제가 즐겨 쓰는 함수죠 ㅎㅎ

2. 입력값o 출력 값x

def function_c(d,e): print(d+e) function_c(2,3)

5

반면에 매개변수가 있고 출력값(return 값)이 없는 함수는 함수 이름을 쓰고 함수를 부를 때 함수의 이름을 쓰고, 함수 안에[ ()안에 ] 값을 써줘야 합니다. 그래야 함수가 적절한 값을 출력해 줍니다. 값이 나오는데 왜 출력값이 없다는 걸까? 라는 생각을 처음에 많이 했는데 프로그램에서는 return값이 없으면 무조건 출력값이 없다고 합니다. 

만약 function_c를 어떤 변수에 대입하고 변수를 출력하면 None값을 출력 할 것 입니다. 


3.입력 값x 출력 값o


def function_d():
    return 3/4

g = function_d()

g

0.75

반면에 입력 값이 없고 출력값(return 값)만 존재하는 함수는 함수를 부를 때 입력 값을(g) 찍어 주고, 그 안에 함수를 넣어 줘야 제대로 된 값이 출력이 됩니다. 입력 값이 없기 때문에 함수에서도 ( ) 안에 아무것도 넣을 필요가 없겠죠? 조금 보면 아시라고 생각됩니다. 하지만 2, 3 번은 별로 아실 필요가 없습니다 ㅎㅎ 잘 사용되지 않기 때문이죠. 사실 1, 4 번만 좀 알아 두시면 됩니다. 자주 사용하는 것은 사실 4번이고 , 개인적으로 선호하는 것은 1번입니다 !


가장 빈번하게 사용되는, 입력 값도 있고, 출력 값도 있는 함수는, 다음과 같은 형태를 취하는데, 

4. 입력 값o 출력 값o

def function_b(a,b,c):
    return pow(a,b)/c


function_b(1,2,3)
0.3333333333333333


함수 안에 모든 프로그램을 구현한 다음에, 어떤 변수를 받을 지 생각하고, 그 변수를 MAIN의 함수에서 던져주면 끝난다, 즉, 여러가지를 생각해야 하지만 쉬운 구현이 가능하다는 장점이 있습니다. 많은 것을 생각해야 한다는 단점은 있지만 코드가 짧아진 다른 장점이 있습니다. 저 같은 경우는 앞에서 언급했다시피 아무것도 없는 첫번 째 경우를 가장 선호하지만 말입니다 ㅎㅎ


2019/02/11 - [OS and 코딩/파이썬] - 8. FOR문

2019/02/10 - [OS and 코딩/파이썬] - 7. While. Break, Continue

2019/02/09 - [OS and 코딩/파이썬] - 6. IF 문


'머신러닝 > 기초 문법' 카테고리의 다른 글

0. 파이썬 출력print and sep  (0) 2019.06.20
가상환경 만들고 삭제하기  (0) 2019.02.14
8. FOR문  (0) 2019.02.11
7. While. Break, Continue  (0) 2019.02.10
6. IF 문  (0) 2019.02.09

저번에 While, break, continue문에 대해서 간단하게 알아 보았고, 이번에는 for문에 대해서 알아 봅시다. 같은 반복문이지만 앞에 언급했다시피, for문은 반복횟수가 확실히 정해져 있을 때 쉽게 사용할 수 있습니다. 알고리즘 자체가 쉽기 때문입니다. 

for문은 기본적으로 iterable 리스트에 for 시작변수 in [리스트] 와 같은 형식으로 사용 할 수 있습니다. 또는 range(0,n)은 iterable변수를 0....n까지 생성 할 수 있으므로, 리스트 대신에 사용 할 수 있습니다. 즉, in 뒤에는 iterable값이면 아무 거나 들어 갈 수 있다는 것입니다. 다른 언어보다 직관적이고 확실히 편리합니다. 

for문의 사용 방법은 다음과 같습니다. 

1. For 문


list_a = ['1','kim','jamwon','seoul','phone'] for h in list_a: list_a list_a

['1', 'kim', 'jamwon', 'seoul', 'phone']


for i in range(0,10):   
    a = pow(i,2)
    print(i,a)  

0 0 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81


list의 값을 순차적으로 꺼내거나, 값을 생성하여, 이에 대해 index를 부여한 다음, 차례대로 꺼내는 것도 가능합니다. 즉, list든 변수든, iterable한 객체이면 for문에서 사용하는 데 문제는 없다는 얘기입니다. 이것만 지키면 상관없습니다.


Continue문을 좀 살펴 보겠습니다.


for j in range(0,10):
    if j%2==0:
        continue
    print("%d" %j)

1 3 5 7 9

10까지의 값을 하나씩 프린트 하는데, 2로 나눈 나머지 값이 0이 되는 것 (j%2==0)에서는 순차적으로 내려가서 프린트하지 않고 제어를 다시 for문으로 돌려 버립니다. 그러니까 출력되지 않겠죠? 이렇게 Continue문은 For문과도 함께 사용될 수 있다는 것을 알아 둡시다. 

for문에서 가장 먼저 배우는 별찍기는 생각보다 파이썬에는 상당히 쉽습니다. line by line이 자동으로 변하기 때문입니다. 

for c in range(0,11):
    print("*"*c)


*
**
***
****
*****
******
*******
********
*********
**********

C 언어와 같은 경우에는 중복 For문을 사용하고 막 별짓을 다 해야 해서 처음 접하는 사람에게는 좀 어려웠는데 파이썬은 딱 직관적으로 느껴지네요. 첫 line에서 하나를, 두 번째 line에서 2번을, 곱하기로 하는 거니 아시겠죠? 정말 직관적이고 쉽습니다.

1. For 

2. 중복 For 문


하지만 이 별을 여러 번 찍어 준다. 하면 좀 다릅니다. 먼저, 중복 for문의 개념에 대해서 알아 보면


for i in range(0,n):

...

for j in range(0,m):

...

처럼 코드가 있으면,

j 및의 코드를 m번 까지 모두 반복한 다음에, 바깥 for문을 한 번 처리 하고 최대 n번 반복하는 것입니다. 이것은 for문이 3개, 4개 있어도 동일하게 적용됩니다.


*
**
***
****
*****
******
*******
********
*********
**********



*
**
***
****
*****
******
*******
********
*********
**********



*
**
***
****
*****
******
*******
********
*********
**********


그러면 중복 for문의 개념을 적용해서 위와 같이 한 번 별을 찍어 주고, 띄어 쓰기 해주고, 한 번 별을 찍어주고, 띄어쓰기 해주고, 이런 식으로 출력해 주고 싶습니다. 어떻게 해야 할까요?


for b in range(0,11):
    print("\n")
    for b in range(0,11):
        print("*"*b)

위와 같이 써주면 됩니다. 참 쉽죠? 

띄어쓰기 라인에 첫번째 For문을 넣어주고, 그 안에, 반복되는 라인에, *을 찍어주는 For문을 넣어주시면 됩니다.  그러면 *을 모두 찍어준 다음에, 한 번 띄어쓰기 해주고, 다시 *를 찍어주고, 다시 띄어쓰기 하고.....를 반복하고 프로그램을 종료하게 됩니다. 

마지막으로 중복 For문의 개념을 알아 보기 위해서 구구단을 출력하는 간단한 프로그램을 살펴보면

for k in range(1,10):
    for l in range(1,10):
        print("%d*%d" %(k,l))   
    if l==9:
        print("=============================================")

1*1 1*2 1*3 1*4 1*5 1*6 1*7 1*8 1*9 ============================================= 2*1 2*2 2*3 2*4 2*5 2*6 2*7 2*8 2*9 =============================================

다음과 같이 출력하면 됩니다. 1단을 먼저 출력하기 위해서 %d (앞에 for문) * %d (뒤에 for문)를 하는데 뒤에 for문은 처음에 9까지 반복이 됩니다. 그리고 9까지 반복이 ㅐ되면 1단인지 2단인지 구분하기 위해서 "======================"가 출력이 되고, 다음 줄로 넘어갑니다.  

중복  For문이 처음에 헷갈 릴 수도 있겠지만 여러번 보시다보면 금방 익숙해 지실 겁니다. 또 파이썬은 간단히 직관적으로 써놨기 때문에 금방 익숙해 지시겠죠. 그럼 다음엔 함수로 찾아오도록 하겠습니다. (__)


'머신러닝 > 기초 문법' 카테고리의 다른 글

가상환경 만들고 삭제하기  (0) 2019.02.14
9. 함수  (0) 2019.02.12
7. While. Break, Continue  (0) 2019.02.10
6. IF 문  (0) 2019.02.09
주피터 노트북 블로그에 맞기 정렬하기  (0) 2019.02.08

+ Recent posts