728x90
데이터 다루기 복습
enumerate()
- 반복 가능한 객체(리스트, 튜플, 문자열 등)를 입력으로 받아 인덱스와 해당 요소를 포함하는 enumerate 객체를 반환하는 함수
# enumerate() 형식
enumerate(iterable, start=0) # 순회할 수 있는(iterable) 객체
#인덱스의 시작값을 설정할 수 있으며 기본값은 0
# 리스트의 각 요소와 인덱스를 함께 출력하는 예시
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(index, fruit, end = ' ') # 결과 0 apple 1 banana 2 cherry
items
- 딕셔너리를 반복문에 사용할 때 각 (키, 값) 쌍을 반환
# 형식
dictionary.items()
# 딕셔너리의 각 (키, 값) 쌍을 순회하며 출력하는 예시
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key, value in my_dict.items():
print(key, value, end = ' ') # 결과: a 1 b 2 c 3
리스트 컴프리헨션(List Comprehension)
- 반복문을 간결하게 작성할 수 있는 파이썬
- 리스트를 생성하거나 변환할 때 사용하는 방법
- 코드가 더 간결해지고 가독성이 좋아지며, 반복문과 리스트 조작 메서드를 별도로 사용할 필요가 없다는 장점이 있음
# 변화 전 예시
numbers = []
for i in range(2, 6):
numbers.append(i)
print(numbers) # 출력: [2, 3, 4, 5]
# 변화 후 예시
numbers = [i for i in range(2, 6)]
print(numbers) # 출력: [2, 3, 4, 5]
함수
가변인수
- 함수가 임의의 개수의 인수를 받을 수 있는 매개변수를 의미
- 매개변수 이름 앞에 '*'
- 함수를 작성할 때 정확히 몇 개의 인수가 필요한지 미리 알 수 없는 경우에 특히 유용
def my_function(*args):
# args는 가변 인수를 담는 튜플입니다.
for arg in args:
print(arg)
# 함수 호출
my_function(1, 2, 3, 4, 5)
정규 표현식
- Python 만의 기능이 아닌, 문자열을 다루는 여러 곳에서 사용되는 공통된 표현식
re 라이브러리
match() | 문자열 처음부터 정규식과 매치 여부 확인 |
search() | 문자열 전체를 대상으로 정규식과 매치 여부 확인 |
findall() | 정규식과 매치되는 모든 문자열을 리스트 형태로 반환 |
finditer() | 정규식과 매치되는 모든 문자열을 반복 가능한 개체로 반환 |
group() | 매치된 문자열을 반환 |
start() | 매치된 문자열의 시작 위치 반환 |
end() | 매치된 문자열의 끝 위치를 반환 |
span() | 매치된 문자열의 (시작, 끝)에 해당하는 튜플 반환 |
메타 문자
. | 임의의 한 문자를 나타냄 |
^ | 문자열의 시작을 나타냄 |
$ | 문자열의 끝을 나타냄 |
* | 바로 앞의 패턴이 0번 이상 반복되는 것을 나타냄 |
+ | 바로 앞의 패턴이 1번 이상 반복되는 것을 나타냄 |
? | 바로 앞의 패턴이 0 또는 1번 나타나는 것을 나타냄 |
{} | 반복 횟수를 나타냄 |
[] | 문자 집합(괄호 안의 어떤 문자든지 매치) |
() | 그룹을 나타냄 |
\ | 이스케이프 문자로 다른 메타 문자를 문자 그대로 매칭하게 함 |
파일 읽고 쓰기
경로 확인
from pathlib import Path
print(Path.home()) # 홈 디렉토리 확인
print(Path.cwd()) # 현재 작업 디렉토리 확인
files = Path.cwd().glob('*') # 디렉토리 안의 내용 확인
for f in files:
print(f)
기본적인 파일 읽고 쓰기
# 파일 쓰기
f = open('MyFile.txt', 'w') # 파일 열기
f.write('안녕하세요!\n')
# 디렉토리 만들기
Path('Files').mkdir(exist_ok = True)
# 경로 지정 파일 쓰기
f = open('Files/MyFile.txt', 'w') # Files에 MyFile.txt 생성
f.write('안녕하세요!\n')
# 파일 읽기
f = open('MyFile.txt', 'r') # r모드로 가져오기
print(f.read())
# 파일 내용 추가
f = open('MyFile.txt', 'a') # a모드로 가져오기
f.write('안녕하세요!\n') # 내용 추가
워드 클라우드
file = open('TNHMB.txt', 'r', encoding='UTF-8')
text = file.read()
wordList = text.split() # 공백을 구분자로 하여 단어 단위로 자르기
worduniq = set(wordList)
wordCount = {} # 딕셔너리 선언
# 단어별 개수 저장
for w in worduniq:
wordCount[w] = wordList.count(w)
# 제외 대상 조사
del_word = ['the','a','is','are', 'not','of','on','that','this','and','be','to', 'from', 'I']
# 제외하기
for w in del_word:
if w in wordCount:
del wordCount[w]
import numpy as np
from PIL import Image
# 이미지 불러오기
masking_image = np.array(Image.open('human5.jpg'))
# 워드 클라우드 만들기
wordcloud = WordCloud(font_path = 'C:/Windows/fonts/HMKMRHD.TTF',
width=2000,
height=1000,
mask=masking_image,
background_color='white').generate_from_frequencies(wordCount)
# 표시하기
plt.figure(figsize=(12, 6))
plt.imshow(wordcloud)
plt.axis("off")
plt.tight_layout(pad=0)
plt.show()
엑셀 파일 다루기
import openpyxl as xl # 라이브러리 불러오기
wb = xl.load_workbook('test.xlsx') # 엑셀 파일 열기
wb.sheetnames # 시트 이름 확인
sheet1 = wb['Sheet1'] # Sheet1 선택
sheet1['A1'].value # 셀 이름으로 셀 값 확인
sheet1.cell(row = 1, column = 1).value # 행, 열 번호로 셀 값 확인
wb.save('text.xlsx') # 엑셀 파일 저장
sheet.insert_rows(행번호) #행 삽입
sheet.insert_cols(열번호) #열 삽입
sheet.delete_rows(행번호) #행 삭제
sheet.delete_cols(열번호) #열 삭제
728x90
'KT AIVLE > DX 복습' 카테고리의 다른 글
[KT AIVLE] DX트랙 데이터 수집(5주차) 복습(웹 크롤링, json, HTML, CSS) (2) | 2024.03.20 |
---|---|
[KT AIVLE] DX트랙 데이터 분석(4주차) 복습(가설검정, 이변량분석, T-Test, ANOVA, 카이제곱검정 ) (4) | 2024.03.16 |
[KT AIVLE] DX트랙 데이터 분석(4주차) 복습(데이터 분석 방법론, EDA&CDA, 시각화라이브러리, 단변량 분석, 숫자형·범주형 변수) (3) | 2024.03.12 |
[KT AIVLE] DX트랙 데이터 다듬기(3주차) 복습(판다스 데이터프레임 변경) (0) | 2024.03.10 |
[KT AIVLE] DX트랙 데이터 다듬기(2~3주차) 복습(넘파이 연산, 판다스 데이터프레임 함수, 조회, 집계) (0) | 2024.03.10 |