STUDY-LOG

[패스트 캠퍼스] 데이터 분석 부트캠프(BDA) 11기 4주차 본문

데이터분석 부트캠프/학습일지

[패스트 캠퍼스] 데이터 분석 부트캠프(BDA) 11기 4주차

dyo_33 2023. 11. 17. 02:11



📌Python으로 하는 데이터분석 2

 

더보기

🙋🏻‍♀️ 부트캠프를 시작한지 4주차이자 파이썬 수업 2주차. 1주차에 비해 이번주는 상당히 많은 양을 배웠다. 

사실 이미 파이썬 문법에 대해 잘 알고있다고 생각한 나도 이번주는 내용이 많아서 힘들었지만

오랜만에 연습문제 코드 작성하고 예제들 풀면서 재미있기도 했다:) 

이번주부터 본격적으로 프로젝트가 시작되어 한주의 끝자락에 서서 부랴부랴 학습일지를 작성하게 되었는데

다소 두서없는 노트임에 양해를 구한다는..😅

 

 
 

목차

1. 리스트 심화 - 조작 메소드

2. 문자열 - 메소드, Formatting

3. 함수

4. Numpy, Pandas

 

 

< 리스트 심화 >

✔ 리스트 조작 메소드

✔ List Comprehension

✔ 2차원 리스트(2D List)

예제

 

 

✔ 리스트 조작

 

>> 리스트에 추가

  • append( )
  • extend( )
  • insert(position, value)
  • 예제
더보기

예제

##### append 예제 #####
a = [1, 2, 3, 4, 5]
print(a)
a.append(6)

print(a)
print(len(a))
'''
output:
>> 6
>> [1, 2, 3, 4, 5, 6]
>> 6 
'''


##### extend 예제 #####
L = [1, 2, 3]
L2 = [4, 5, 6]
L.extend(L2)
print(L)
'''
output:
>> [1, 2, 3, 4, 5, 6]
'''


##### insert 예제 #####
b = [1, 2, 3, 5]
b.insert(3, 4) #index3에 4를 추가
print(b)
'''
output:
>> [1, 2, 3, 4, 5]
'''

b = [1, 2, 3, 5]
b.insert(3, [4, 6])
print(b)
'''
output:
>> [1, 2, 3, [4, 6], 5]
'''

b = [1, 2, 3]
b[1:1] [5, 6]
print(b)
'''
output:
>> [1, 5, 6, 2, 3]
'''

 

 

>> 리스트에서 삭제

  • pop( ) → 인덱스 기반 값 삭제
    • 지정된 인덱스의 요소를 삭제한 뒤 해당 값 반환
    • pop()은 마지막 요소 제거, 괄호 안에 인덱스 값을 입력하면 해당 인덱스 제거
  • remove( ) → 특정 값 기반으로 항목 제거
    • 특정 값을 찾아 첫번째로 일치하는 항목 제거
    • 주의: remove는 삭제할 항목이 리스트에 없으면 ValueError를 발생시킴
  • 예제
더보기

예제

##### pop 예제 #####
a = [10, 20, 30]
a.pop() # 마지막 요소 제거
>> 30 
a
>> [10, 20]

a = [1, 2, 3]
a.pop(1) # 인덱스 지정해주면 해당 인덱스 값 제거
>> 2
a
>> [1, 3]



##### remove 예제 #####
a = [10, 20, 30]
a.remove(20)
a
>> [10, 30]

 

 

>> 리스트의 기타 조작 메소드

  • index( ) → 특정 값의 인덱스를 반환
    • index 함수는 해당 값이 리스트에 없으면  ValueError를 발생시킴
  • count( ) → 특정 값의 개수 반환
  • reverse() → 리스트의 순서를 reverse
  • sort() → 리스트의 항목 정렬
    • sort() 또는 sort(reverse=False) 오름차순
    • sort(reverse=True) 내림차순
  • clear() → 모든 요소 삭제
  • slicing
  • 예제
더보기

예제

##### index 예제 #####
a= [10, 20, 30, 40, 20, 50, 20, 30, 60, 70, 20]
index = []
while 20 in a:
    pos = a.index(20)
    index.append(pos)
    a[pos] = '_'
        
print(a)  # [10, '_', 30, 40, '_', 50, '_', 30, 60, 70, '_']
print(index) # [1, 4, 6, 10]    
  
   
##### count 예제 #####
a = [10, 20, 30, 15, 20, 50]
a.count(20)
a # 2


##### reverse 예제 #####
a = [10, 20, 30]
a.reverse()
a # [30, 20, 10]


##### sort 예제 #####
a = [10, 20, 30, 15, 20, 40]
a.sort(reverse=Fale)
a # [10, 15, 20, 20, 30, 40]



##### clear 예제 #####
a = [10, 20, 30]
a.clear()
a # []


##### slicing 예제 #####
a = [10, 20, 30]
a[len(a): ]= [500] # a.append(500)과 동일
a #[10, 20, 30, 500]

a = [10, 20, 30]
a[len(a): ]= [500, 600] # a.extend([500, 600])
a #[10, 20, 30, 500, 600]

 

 

>> 리스트 할당과 복사

  • import copy 사용
  • 예제
더보기

예제

a = [0, 0, 0, 0, 0]
b = a
print(a is b)   # True
b[2] = 99
print(a)   # [0, 0, 99, 0, 0]
print(b)   # [0, 0, 99, 0, 0]


import copy
a = [0, 0, 0, 0, 0]
b = a.copy() # <-- a와 b는 다른 객체
a is B # False
a == b # True

a[0] = 42
b[2] = 99
print(a, b) # [42, 0, 0, 0, 0] [0, 0, 99, 0, 0]
import copy
a= [0, 0, 0, 0, 0]
b = a # not a copy, but an alias
c = copy.copy(a) # ok
print(a) # [0, 0, 0, 0, 0]
print(b) # [0, 0, 0, 0, 0]
print(c) # [0, 0, 0, 0, 0]

a[0] = 42
print(a) # [42, 0, 0, 0, 0]
print(b) # [42, 0, 0, 0, 0]
print(c) # [0, 0, 0, 0, 0]



##########################################
a = [2, 3]
b = copy.copy(a)
c = a[:]
d = a + [ ]
e = list(a)

a[0] = 42
print(a, b, c, d, e)

 

 

 


 

 

 

 

✔ List Comprehension

 

>> 리스트 표현식 (List Comprehension)

  • 리스트 안에 식, for, if 등을 사용해 간결하게 표현
  • L = [expression for item in iterable if condition]
  • 예제
더보기

예제

#구구단
result = [j*i for j in range(2, 10) for i in range(1, 10)]
result

 

 

>> 리스트에 map 사용

  • 리스트의 요소를 지정된 함수로 처리해주는 함수
  • list(map(func, L))
  • tuple(map(func, T))
  • 예제
더보기

예제

a = [1.2, 2.5, 3.7, 4.6]
for i in range(len(a)):
		a[i] = int(a[i])
a #[1, 2, 3, 4]

a = list(map(str, range(10)))
a #['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

print(list(map(int, "12345"))) # [1, 2, 3, 4, 5]
print(list(map(float, "12345"))) # [1.0, 2.0, 3.0, 4.0, 5.0]
print(list(map(str, "12345"))) # ['1', '2', '3', '4', '5']

 

 

 


 

< 문자열 >

✔ 문자열 조작 메소드

✔ 문자열 Formatting

 

 

 

✔ 문자열 조작 메소드

 

>> 문자열 검색

  • find(substring) 해당 substring을 찾아 인덱스 위치 반환
    • substring의 첫번째 위치 반환, 없으면 -1을 반환
  • index(substring) substring의 첫번째 위치 반환, 없으면 ValueError 반환
  • count(substring) →  substring의 출현 횟수를 반환
  • 예제
더보기
예제
##### find #####
'apple pineapple'.find('pl')
'''output: 2'''

'apple pineapple'.find('xy')
'''output: -1'''


# 'pl'의 위치반환
text = 'apple pineapple apple pineapple'
substring = 'pl'
L = []
for i in range(len(text)):
    if text[i: i+len(substring)] == substring:
        L.append(i)
print(L)

##### index #####
text = 'Hello'
text.index('o') # 4

 

 

>> 문자열 변경

  • replace(old, new)
  • maketrans(old, new)
  • strip() 문자열의 양끝 공백 제거
  • split(delimiter) 문자열을 delimiter로 나누어 리스트 반환
  • upper(), lower() 대소문자 변환

  

 

 


 

 

 

 

✔ 문자열 Formatting

 

>> 문자열 formatting

  • f-string
  • .format()
  • % operator
자료형 문자 입력 자료형
정수 %d 정수, 실수
실수 %f 정수, 실수
문자열 %s 문자열, 수 자료형
8진수 %o 정수형
16진수 %x 정수형
% %% 문자%

 

더보기

예시

# f-string
food = "banana"
print(f"I ate {food} today.")
>> I ate banana today.


# .format()
x, y, z = 3, 8, 42
print("My favorite numbers are {0}, {1} and {2}.".format(x,y,z))

>> My favorite numbers are 3, 8 and 42.


# % operator
dogs = 42
print("There are %d dogs." %dogs)
>> There are 42 dogs.

num1, num2 = map(int, input("숫자 두개를 입력하세요: ").split(" "))
num3 = num1 + num2
print("%d + %d = %d 입니다." % (num1, num2, num3))
>> 입력: 10 20
>> 10 + 20 = 30

 

 

 

 


 

 

 

 

< Numpy & Pandas >

 

✔ Numpy 

✔ Pandas

✔ Seaborn

 Pyplot

더보기

🙋🏻‍♀️넘파이와 판다스의 내용은 다음시간에 찾아뵙겠습니다:)