파이썬

  1. 언어들 중 배우기가 쉬운 편에 속합니다.
  2. 데이터를 다루는데 용이합니다.
  3. 다양한 모듈/패키지가 존재하여 활용범위가 넓습니다.

왜 데이터 분석을 하는데 파이썬이 필요하지?

  1. 파이썬은 데이터분석, 머신러닝/인공지능을 지원하는 다양한 모듈을 보유하고 있습니다.

    • pandas : 데이터분석을 쉽게 해주는 엑셀 파이썬 버전
    • numpy : 수치해석/통계 관련 작업 지원
    • matplotlib, seaborn : 여러 시각화 도구를 제공
    • Scikit-learn, TensorFlow : 다양한 머신러닝/딥러닝 모델 지원
  1. 데이터 분석을 위한 데이터 정제를 쉽게 할 수 있도록 도와줍니다.

    • 각 자료형의 다양한 기능을 활용하여 데이터 정제
    • 함수/조건/반복을 활용하여 쉽게 데이터 정제

자료형

변수

a = 6

변수명 : 데이터를 저장하는 공간 이름

변수명은 단순히 데이터를 저장하는 공간을 부르는 명칭으로 코딩하는 사람 마음대로 지을 수 있습니다. 다만, 아래 규칙을 지켜야 합니다.

<변수명 작성 규칙>

In [1]:
# A = 6 : (o) 대/소문자를 구분합니다

A = 6
In [2]:
# (x) 띄어쓰기는 할 수 없습니다.

a b = 6
  File "<ipython-input-2-ef4beeb62d16>", line 3
    a b = 6
      ^
SyntaxError: invalid syntax
In [ ]:
# (o) 특수기호는 밑줄 기호만 사용할 수 있습니다.

a_b = 6 
In [ ]:
# (x) 숫자가 맨 앞으로 오거나 숫자 단독으로 사용할 수 없습니다.

1a = 6
In [ ]:
# (o) 맨 앞에 문자가 있으면 숫자를 사용할 수 있습니다.

a1 = 6

파이썬 자료형

1) a=6

  • 데이터가 정수일 경우 -> int

2) b=3.14

  • 데이터가 실수일 경우 -> float

3) c='python'

  • 데이터가 문자열일 경우 -> str

4) d=[1, 2, 3, 4, 5]

  • 데이터가 리스트일 경우 -> list

5) e={“사과”:”apple”, “포도”:”grape”, “오렌지”:”orange”}

  • 데이터가 딕셔너리일 경우 -> dict

6) f=True

  • 데이터가 부울일 경우 -> bool

숫자형(int, float)

In [ ]:
# 정수형

a=6
type(a)
In [3]:
# 실수형

b=3.14
type(b)
Out[3]:
float

숫자형의 기능

In [4]:
a, b= 5,2
In [5]:
# 더하기
a+b
Out[5]:
7
In [6]:
# 빼기
a-b
Out[6]:
3
In [7]:
# 곱하기
a*b
Out[7]:
10
In [8]:
# 나누기
a/b
Out[8]:
2.5
In [9]:
# 몫 구하기
a//b
Out[9]:
2
In [10]:
# 나머지 구하기
a%b
Out[10]:
1
In [11]:
# 제곱 구하기
a**b
Out[11]:
25
In [12]:
# 최댓값 구하기
max(a,b)
Out[12]:
5
In [13]:
# 최솟값 구하기
min(a,b)
Out[13]:
2

문자열(str)

In [14]:
c='python'
type(c)
Out[14]:
str

문자열의 기능

In [15]:
# 큰 따옴표, 작은 따옴표 무관
c='파이썬 격파'
d='시작'
In [16]:
# 문자 이어주기
c+d
Out[16]:
'파이썬 격파시작'
In [17]:
# 문자열 반복하기
d*3
Out[17]:
'시작시작시작'
In [18]:
# 문자 가져오기
c[0]
Out[18]:
'파'
In [19]:
c[3]
Out[19]:
' '
In [20]:
c[1:5]
Out[20]:
'이썬 격'
In [21]:
c[1:]
Out[21]:
'이썬 격파'
In [22]:
c[-2]
Out[22]:
'격'
In [23]:
# 문자열의 길이 구하기
len(c)
Out[23]:
6
In [24]:
# 문자열에서 특정 글자 바꾸기
c.replace('격파','정복')
Out[24]:
'파이썬 정복'
In [25]:
# 문자열을 리스트로 분리하기
c.split()
Out[25]:
['파이썬', '격파']
In [26]:
e='파이썬-격파'
e.split('-')
Out[26]:
['파이썬', '격파']

리스트(list)

In [27]:
d=[1,2,3,4,5]
type(d)
Out[27]:
list

리스트의 기능

In [28]:
# 특정 위치의 요소 가져오기
d[0]
Out[28]:
1
In [29]:
d[1]
Out[29]:
2
In [30]:
d[1:4]
Out[30]:
[2, 3, 4]
In [31]:
d[-1]
Out[31]:
5
In [32]:
# 특정 위치의 요소 수정하기
d[0]=0
d
Out[32]:
[0, 2, 3, 4, 5]
In [33]:
# 리스트 합치기
d + [6,7,8]
Out[33]:
[0, 2, 3, 4, 5, 6, 7, 8]
In [34]:
# 리스트에 있는 요소 개수 구하기
len(d)
Out[34]:
5
In [35]:
# 리스트에 있는 요소의 합 구하기
sum(d)
Out[35]:
14
In [36]:
# 리스트의 요소를 문자열로 결합하기
e=['수박','딸기','사과','포도']
''.join(e)
Out[36]:
'수박딸기사과포도'
In [37]:
'-'.join(e)
Out[37]:
'수박-딸기-사과-포도'
In [38]:
# 2차원리스트
e=[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
e
Out[38]:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
In [39]:
type(e)
Out[39]:
list
In [40]:
e[1]
Out[40]:
[5, 6, 7, 8]
In [41]:
e[0][3]
Out[41]:
4
In [42]:
e[1][2]
Out[42]:
7

딕셔너리(dict)

In [43]:
f={'가':1, '나':2, '다':[3,4,5]} 
type(f)
Out[43]:
dict

딕셔너리 기능

In [44]:
# 특정 요소 가져오기
f['가']
Out[44]:
1
In [45]:
f['다']
Out[45]:
[3, 4, 5]
In [46]:
# 특정 요소 수정하기
f["나"]=6
f
Out[46]:
{'가': 1, '나': 6, '다': [3, 4, 5]}
In [47]:
# 요소 추가하기
f["라"]=7
f
Out[47]:
{'가': 1, '나': 6, '다': [3, 4, 5], '라': 7}

불리언(bool)

In [48]:
h=True
type(h)
Out[48]:
bool

조건

if 조건

In [49]:
a=100
b=78

if a < b :
    print('a가 b보다 작다')

if a == b :
    print('a는 b와 같다')

if a > b :
    print('a가 b보다 크다')
    
print('조건배우기')
a가 b보다 크다
조건배우기

★ 들여쓰기

실행코드 부분을 구분해 주는 역할을 합니다.

1) 가장 바깥쪽의 실행 코드는 들여쓰기가 없이 시작해야 합니다.

2) 콜론(:) 다음 라인부터 시작하는 실행 코드는 들여쓰기 간격이 모두 동일해야 합니다.

3) 조건문 뿐만 아니라 for, while 같은 각종 제어문, 함수 및 클래스에서도 들여쓰기를 해야 합니다.

else - 바로 위의 if 조건식이 거짓이면

In [50]:
a=100
b=78

if a < b :
    print('a가 b보다 작다')

else :
    print('a는 b보다 크거나 같다')
a는 b보다 크거나 같다

비교연산자

In [51]:
x=6
y=4
In [52]:
# x가 y보다 작다
x<y
Out[52]:
False
In [53]:
# x가 y보다 크다
x>y
Out[53]:
True
In [54]:
# x가 y와 같다
x==y
Out[54]:
False
In [55]:
# x와 y가 다르다
x!=y
Out[55]:
True
In [56]:
# x가 y보다 크거나 같다
x>=y
Out[56]:
True
In [57]:
# x가 y보다 작거나 같다
x<=y
Out[57]:
False

논리연산자

In [58]:
x=10
In [59]:
# A and B
# A 와 B 모두가 참이어야 참

if (x < 8) and (x > 2) :
    print('가나다')
else:
    print('파타하')
파타하
In [60]:
# A or B
# A 와 B 둘 중에 하나만 참이면 참

if (x < 8) or (x > 2) :
    print('가나다')
else:
    print('파타하')
가나다
In [61]:
# not A
# A가 거짓이면 참

if not (x < 8) :
    print ('라마바')
라마바

if 와 in

In [62]:
# A in ○○○
# ○○○안에 A가 있는지 여부

# 문자열
a='abcd'

if 'b' in a:

    print('kkk')
kkk
In [63]:
# 리스트 

a = ['가', '나', '다', '라']

if '가' in a:
    print('abc')

if '하' in a:
    print('xyz')
abc

elif - if와 else의 합체

In [64]:
s=85

if s>=90:
    print('1등급')
if s>=80:
    print('2등급')
if s>=70:
    print('3등급')
if s>=60:
    print('4등급')
else:
    print('5등급')
2등급
3등급
4등급
In [65]:
s=85

if s>=90:
    print('1등급')
elif s>=80:
    print('2등급')
elif s>=70:
    print('3등급')
elif s>=60:
    print('4등급')
else:
    print('5등급')
2등급

반복

for in range

range(시작하는 값, 끝나는 값 다음 값, 변하는 값)

  • 변하는 값이 +1일 경우 생략 가능

  • 시작하는 값이 0일 경우 생략 가능

In [66]:
for i in range (4) :
    print(i)
0
1
2
3

for in 리스트

In [67]:
a = ['가', '나', '다', '라']

for i in a :
    print(i)
가
나
다
라
In [68]:
n = [1, 2, 3, 4, 5, 6, 7, 8]

for j in n :
    if j%2==0:
        print(j)
2
4
6
8

함수

함수의 구조와 용어 살펴보기

In [69]:
print('지금 도착하신 정류장은 역삼역입니다.')
print('내리실 문은 왼쪽입니다.')
print('지금 도착하신 정류장은 강남역입니다.')
print('내리실 문은 왼쪽입니다.')
print('지금 도착하신 정류장은 교대역입니다.')
print('내리실 문은 왼쪽입니다.')
지금 도착하신 정류장은 역삼역입니다.
내리실 문은 왼쪽입니다.
지금 도착하신 정류장은 강남역입니다.
내리실 문은 왼쪽입니다.
지금 도착하신 정류장은 교대역입니다.
내리실 문은 왼쪽입니다.
In [70]:
# def subway() : 함수(function) subway 정의

# subway() : 함수 호출

def subway( ):
    print('내리실 문은 왼쪽입니다.')
print('지금 도착하신 정류장은 역삼역입니다.')
subway( )
print('지금 도착하신 정류장은 강남역입니다.')
subway( )
print('지금 도착하신 정류장은 교대역입니다.')
subway( )
지금 도착하신 정류장은 역삼역입니다.
내리실 문은 왼쪽입니다.
지금 도착하신 정류장은 강남역입니다.
내리실 문은 왼쪽입니다.
지금 도착하신 정류장은 교대역입니다.
내리실 문은 왼쪽입니다.
In [71]:
# a : 매개변수 (parameter)

# '역삼역' : 인수
    
def subway(a):
    print('지금 도착하신 정류장은' + a + ' 입니다.')
    print('내리실 문은 왼쪽입니다.')
subway('역삼역')
subway('강남역')
subway('교대역')
지금 도착하신 정류장은역삼역 입니다.
내리실 문은 왼쪽입니다.
지금 도착하신 정류장은강남역 입니다.
내리실 문은 왼쪽입니다.
지금 도착하신 정류장은교대역 입니다.
내리실 문은 왼쪽입니다.
In [72]:
def total(a, b) :
    c=a+b
    print(c)

total(1, 2)
total(4.2, 3.9)
3
8.1
In [73]:
# return c : 반환값

def total(a, b) :
    c=a+b
    return c

fir = total(1, 2)
sec = total(4.2, 3.9)
print(fir)
print(sec)
3
8.1

함수의 종류

  • 내장 함수 : 파이썬에 내장된 함수 (print, input, int, abs, type 등등)
  • 외장함수 : 파이썬 외부 모듈에 있는 함수 (randint, sleep, localtime 등등)
  • 사용자 정의 함수 : 사용자가 직접 만든 함수 (subway, total)

◎ lambda 표현식 : 함수를 간단하게 한 줄로 만든 함수

In [74]:
plus = lambda a, b : a+b
a=plus(1,2)
a
Out[74]:
3

모듈

여러 기능들을 묶어서 만든 파이썬 파일

'라이브러리'와 혼용해서 사용

In [75]:
import random

random.randint(1, 6)
Out[75]:
1
In [76]:
import random as r

r.randint(1, 6)
Out[76]:
3

모듈의 종류

  • 표준 모듈 : 파이썬에서 제공하는 모듈 ex) random, time, math 등

  • 사용자 정의 모듈 : 사용자가 직접 작성한 모듈

  • 서드 파티(3rd Party) 모듈 : 다른 사용자나 업체 및 단체에서 제공하는 모듈 ex) pygame, pandas, tensorflow