11월 7일(월)부터 3일간 tacademy로 파이썬 강좌를 들으러 간다.
대단한 실력자라고 귀에 못이 박히게 들은 수찬님의 강좌를 듣게 되서 매우 영광이다.
첫 날 배운 내용 중 의미있는 내용들을 간단히 정리해 보았다.
아직 정확히 모르는 부분은 다음에 더 찾아 넣고 두고두고 복습해야 할 듯 하다.
- 외부 파일 오픈, 자동 닫기
-----------------------------------------
with open("hello.txt", "r") as fp:
data = fp.read()
print(data)
----------------------------------------
-students.csv 파일 불러와서 편집하기: 동 경로에 있는 csv 파일을 불러와 dic 방식으로 정리하는 함수를 만들어보았다
이미 id, name, email값이 지정된 것을 알고 있었기 때문에 for문에 이들을 dict 형태로 추가하였다.
--------------------------------------------
def read_csv(filepath):
with open(filepath, "r") as fp:
data = fp.read()
rows = data.split("\n")
elements = []
for row in rows:
field = row.split(",")
element = {
"id":field[0],
"name":field[1],
"email":field[2]
}
elements.append(element)
return elements
---------------------------------------------------
-특정 csv에 어떤 헤더(칼럼)이 있는 지 모르는 경우에 csv 파일 불러와서 dict 형태로 만들어주는 함수
*이해가 될 때까지 반복 학습 필요
--------------------------------------------------
def read_csv_any(filepath):
with open(filepath, "r") as fp:
data = fp.read()
rows = data.split("\n")
subjects = rows[0].split(",")
elements = []
for row in rows[1:]:
fields = row.split(",")
element = {}
for subjectindex in range(len(subjects)):
subject = subjects[subjectindex]
field = fields[subjectindex]
element[subject] = field
elements.append(element)
return (elements)
----------------------------------------------------
-**너무너무 중요한 "lambda" 함수
# 1. 리스트 | 1~10 자연수의 제곱수 ( 1, 4, 9, ... 100)
----------------------------------------
def get_square(numbers):
element = []
for number in numbers:
result = number ** 2
element.append(result)
return element
-------------------------------------------
# 함수 안에 함수 집어넣기
-----------------------------------------------------
def get_square(number):
return number ** 2
def get_square_list(numbers):
element = []
for number in numbers:
element.append(get_square(number))
return element
----------------------------------------------------
#이를 lambda 함수로 변환하면?
# Map : 각각의 element func apply
# fliter - element func apply, filtering when True (filtering Mask가 생김... )
------------------------------------
a = map(
get_square, [1, 2, 3, 4, 5]
)
for i in a:
print(i)
--------------------------------------
list(map(
lambda x: x ** 2, [1, 2, 3, 4, 5]
))
-------------------------------------
def get_square_list(numbers):
return list(map(lambda x : x ** 2, numbers))
--------------------------------------------------
# 1. 리스트를 받아서 리스트 숫자들의 곱 | [1, 2, 3, 4] => 24
# 2. 리스트를 받아서, 리스트 중에서 제일 큰 수 | [-1, 0, 2, 4, 3]
# from functools import reduce
reduce: 특정 값이 나올 때까지 lambda 함수 시행
------------------------------------------
def get_bigger(a, b):
return a if a > b else b
reduce(
get_bigger, [3, -1, 5, 6]
)
----------------------------------------
def get_max(numbers):
return reduce(
lambda x, y : x if x > y else y, numbers
)
---------------------------------------
#예제
#list를 받아서 히스토그램을 그리는 함수...
#["dog", "dog", "dog", "dog", "cat", "cat", "bird", "bird", "bird"]
"""
dog ====
cat ==
bird ===
"""
이런 형태로 animals 리스트를 히스토그램화 시키는 예제이다.
* 이해 될 때까지 풀어보고 완전히 이해한 다음에 답을 올리겠다.
---------------------------------------------------
---------------------------------------------------
#예제, decorator, list comprehension 부분은 추후에 더 복습 후 업로드 하겠다!
'backend > 데이터분석' 카테고리의 다른 글
02_1. 사람인, 스펙업(네이버 까페) 인턴 정보 통합 시스템 (selenium, python) (0) | 2016.12.15 |
---|---|
selenium을 통한 중고나라 크롤링 (1) | 2016.11.23 |
project02.까페알바 (0) | 2016.11.20 |
project01. dios 구글 크롤링/ 11.19 (0) | 2016.11.19 |
Numpy 복습 (0) | 2016.11.12 |