성동1기 전Z전능 데이터 분석가 과정

[성동1기 전Z전능 데이터 분석가] 30일차 python 기초 - 자료형

데이터분석가_안졍 2023. 11. 24. 10:19
728x90

파이썬이란 무엇인가

소프트웨어 개발, CUI/웹/DB프로그래밍, 데이터/수치 분석

 

데이터/ 수치분석: 다양한 모듈을 통해 쉽고 효과적으로 데이터 분석을 할 수 있다.

 

파이썬을 쓰려는 이유

  • 쉽다. 파이썬의 문법은 우리가 사용하는 자연어와 유사한 문법 구조를 갖고 있다.
  • 의도적으로 간결하게 만들어진 언어. 읽고 쓰기 간편함
  • 누구나 무료로 사용/복제/배포/수정 및 상업화가 가능한 오픈 소스 언어
  • 사용 가능한 내장 함수 및 외부 라이브러리 (모듈) 굉장히 많음. 다른 다양한 언어들과도 쉽게 융합되는 강점

통계분석/ 시각화/ 머신러닝 모델링(예측 모델을 만들 수 있다.)/ 비정형 데이터 분석 가능

 

파이썬 기초 - 자료형

변수

  • 다양한 자료형의 값을 저장하는 공간이다.
  • 변수명을 정할 때는 알아보기 쉽도록 의미를 담아 정한다. 영문자, 숫자, 언더바(_)를 조합해 정하며, 반드시 문자로 시작해야 한다.

자료형

1) 숫자

항목 연산자
사칙연산 +, -, *, /
나머지 연산 %
몫 연산 //
제곱연산 **
# 홍길동씨의 국어점수 80, 영어점수 75, 수학점수 55 평균을 구하시오
a = 80
b = 75
c = 55
(80+75+55)/3
70.0
 
# 13이 홀수인지 짝수인지 판별할 수 있는 방법은?
 
13%2
1
 
 

2) 문자열: 따옴표로 둘러싸여 있으면 모두 문자열이다.

# 연속된 따옴표 3개 사용하기
multiline = '''호호호
하하하'''
print(multiline)
 
호호호 하하하
 
  • 문자열의 연산 가능하다.
# len()은 괄호 안 문자열의 길이를 출력하는 함수다.
a = " "
len(a)
 
1
 
  • 문자열 인덱싱과 슬라이스

파이썬 배열의 색인은 0부터 시작한다.

a[n] = a의 n번재의 값

문자열을 뒤에서부터 읽을 때는 마이너스(-) 기호를 붙인다.

 
# "20010331Rainy" 문자열을 연도(2001), 월일(0331), 날씨(Rainy)로 각각 나누려면?
a= "20010331Rainy"
year =a[:4]
day = a[4:8]
weather = a[-5:]
year, day, weather
 
('2001', '0331', 'Rainy')
 
# pithon -> python바꿔라
a = "pithon"
a[0]+ "y"+a[-4:]
 
python
 
  • 문자열 포매팅

문자열 안에 변수(변하는 값)을 삽입하는 것

코드 설명
%s 문자열(String)
%c 문자 1개(Character)
%d 정수(Interger)
%f 부동소수(Floating-point)
%o 8진수
%x 16진수
%% %문자 자체
#문자열 끝에 .format()함수를 사용하면 좀 더 발전된 스타일로 문자열 포멧 지정 가능
 
1. 
number = 10
day = "three"
i ate {0} apples so i was sick for{1} days".format(number, day)
 
i ate 10 apples so i was sick for three days
2. 
"i ate {number} apples so i was sick for {day} days".format(number = 10, day = "three")
 
i ate 10 apples so i was sick for three days
 
  • 문자열의 내장 함수
함수형 설명
a.count(b) a 문자열 중 문자 b의 개수 변환
a.find(b) a문자열 중 문자 b가 처음으로 나온 위치 변환
b.join(a) a문자열의 각각의 문자 사이에 b삽입
a.upper() a문자열의 소문자를 대문자로 변환
a.lower() a문자열의 대문자를 소문자로 변환
a.strip() a문자열의 양 옆 공백 모두 제거
a.replace(b,c) a문자열의 b문자를 c문자로 대체
a.split(b) b문자를 기준으로 a문자열 분할
# join()함수
",".join("abcd")
 
a,b,c,d
 
# a.lstrip() 왼쪽 공백 제거
# a.rstrip() 오른쪽 공백 제거
 
# 주민번호 881120-1068234 연월일과 뒤의 숫자 부분으로 나누어 출력해보자
a = "881120-1068234"
a.split("-")
birth = "19"+a.split("-")[0]
num = a[7:]
birth
19881120
num
1068234
 
# 실습 주민번호 881120-1068234 성별을 나타내는 숫자
a = "881120-1068234"
a[7]
 
'1'
 
#문자열 "a:b:c:d"를 a#b#c#d로 바꾸시오
a = "a:b:c:d"
a.replace(":","#")
 
a#b#c#d
 

3) 리스트: 여러 요소의 모음

 

  • 리스트 만들기 

리스트명 = [요소1, 요소2, 요소3, ...]

대괄호로 감싸주고 각 요솟값은  쉼표로 구분한다.

파이썬의 리스트 안에는 어떠한 자료형도 포함시킬 수 있다.

중첩리스트라고 리스트 e와 같이 리스트 안에 또 다른 리스트를 요솟값으로 가질 수 있다.

 

  • 리스트 슬라이싱, 연산 가능
  • 리스트 내장 함수
함수명 설명
append(x) 리스트의 맨 마지막에 x를 추가
sort() 리스트의 요소를 순서대로 정렬
reverse() 리스트를 역순으로 변환
index(x) 리스트에 x값이 있으면 x의 인덱스 값을 리턴
insert(a,b) 리스트의 a번째 위치에 b를 삽입
remove(x) 리스트에서 첫 번째로 나오는 x 를 삭제
pop() 리스트의 맨 마지막 요소를 리턴, 해당 요소 삭제
count(x) 리스트 안에 x요소의 개수를 리턴
extend(x) 리스트에 x 리스트 더하기
# 인덱스 반환하기
a = [1,2,3]
a.index(3)
2
 
# 리스트 요소 꺼내기
a= [1,2,3]
a.pop()
=> 3
a
[1, 2]
 
# 리스트 확장
a= [1,2,3]
a.extend([4,5])
a
[1, 2, 3, 4, 5]
 
#실습 [1,3,5,4,2]라는 리스트를 [5,4,3,2,1]로 만들어보자
a = [1,3,5,4,2]
a.sort(reverse=True)
a
 
[5, 4, 3, 2, 1]
 
#["LIfe", "is", "too", "short"]라는 리스트를 "Life is too short"라는 문자열로 만들어보자
a = ["LIfe", "is", "too", "short"]
b=" ".join(a)
b
 
'LIfe is too short'
 

4) 튜플

 

  • 튜플 만들기

튜플 = {요소1, 요소2, 요소3, ...}

소괄호로 감싸주고 각 요솟값은 쉼표로 구분한다. 리스트와 다른 점은, 튜플의 요솟값은 바꿀 수 없다는 것

단지 1개의 요소만을 가질 때는 요소 뒤에 쉼표를 반드시 붙여야 한다.

소괄호를 생략해도 튜플 생성이 가능하다.

  • 튜플 다루기

인덱싱, 슬라이싱, 연산 등 가능

#(1,2,3)이라는 튜플 a를 (1,2,3,4)로 바꾸어 출력해보자
a = (1,2,3)
a = a+(4,)
a
 
output
(1, 2, 3, 4)

 

5) 딕셔너리

  • 딕셔너리 만들기

{key:value1, key2: value2, ...}

key와 value를 한 쌍으로 가지는 자료형

grade = {"pey":10, "julliet":99}
grade["pey"]
 
10
 
# 딕셔너리 요소 추가하기 
a= {1:"a"}
a[2] = {"b"}
a
 
{1: 'a', 2: {'b'}}

 

  • 딕셔너리 내장 함수
함수명 설명
keys() 딕셔너리의 Key 값을 dict_keys 객체로 리턴
values() 딕셔너리의 Value값을 dict_keys 객체로 리턴
items() key와 value의 쌍을 튜플로 묶은 값을 dict_items 객체로 리턴
clear() 딕셔너리 안의 모든 요소를 삭제
get(x) x라는 key에 대응되는 value를 리턴
in x x가 딕셔너리 안에 있는지 여부 리턴
#딕셔너리 a {"a":90, "b":80 "c":70} b를 가져오시오
a = {"a":90, "b":80, "c":70}
a["b"]
 
80

 

오늘부터 파이썬 시작이다!!  환경설정부터 나의 여정은 쉽지 않지만... 그래도 복습을 열심히 해서 프로젝트 때 잘 활용할 수 있도록 노력하겠다.