
데이터 분석을 위한 Python
✔️ 리스트 표현식
✔️ 파일 읽기/쓰기
✔️ JSON 파일을 통한 데이터프레임 변환
✔️ 리스트 표현식
리스트 표현식
리스트 표현식
리스트 안에 for 반복문과 if else 조건문을 한 번에 적어서 리스트를 만드는 방법
여러 줄의 코드를 1줄로 줄일 수 있음(파이썬만의 문법)
for문과 if else문을 사용해서 처리할 때 속도가 빠름
[실행할 명령 for 변수 in list, tuple]
# 일반 반복문 사용 for i in range(1,11): if i % 2 == 0: print(f'{i}는 짝수입니다') else: print(f'{i}는 홀수입니다')
# 정규표현식 사용 for i in range(1,11): print(f'{i}는 짝수입니다') if i % 2 == 0 else print(f'{i}는 홀수입니다')

# 1부터 10까지 들어있는 리스트 생성 l1 = [] for i in range(1,11): l1.append(i) print(l1)
# 리스트 표현식 [i for i in range(1,11)]

리스트 표현식_일반 반복문과의 속도 차이 존재
# 일반 반복문 실행 시간 측정 import time %%time a = [] for i in range(1,20000000): a.append(i+5) print(a[:10])

# 리스트 표현식 사용 %%time b = [i+5 for i in range(20000000)] print(b[:10])

# numpy 사용 -> 배열 전체에 대해 한 번에 연산 수행 %%time # pip install numpy import numpy as np c = np.arange(200000000) c = c + 5 print(c[:10])

리스트 표현식_1에서 10까지의 숫자 중 짝수만 넣어서서 리스트 생성
# 일반 반복문과 리스트 표현식의 결과는 동일하게 나옴 l1 = [] for i in range(1,11): if i % 2 == 0: l1.append(i) l1
l2 = [i for i in range(1,11) if i % 2 == 0] l2

리스트 표현식_다중 반복문을 사용한 리스트 표현식(구구단)
# 구구단 공식을 for문으로 구현 gugudan = [] for i in range(2,10): for j in range(1,10): gugudan.append(f"{i} X {j} = {i * j}") gugudan[:9]
# 구구단이 길기 때문에 2단만 구현 gugudan2 = [f"{i} X {j} = {i * j}" for i in range(2,10) for j in range(1,10)] gugudan2[:9]

리스트 표현식_다중 반복문을 사용한 리스트 표현식(시계)
for h in range(0,24): for m in range(0,60): for s in range(0,60): print(f"{h}:{m}:{s}")
# 시계 구현 # 누적해서 사용하는 경우 for문을 2개 이상 쓰는 것은 자주 사용하지 않음 # 튜플로도 생성이 가능 time = [f"{h}:{m}:{s}" for h in range(0,23) for m in range(0,60) for s in range(0,60)] time[:10]

✔️ 파일 읽기 / 쓰기
파일 쓰기_open()
open() : 파일에 문자열 쓰거나 읽는 경우
파일저장변수명 = open('파일이름', 모드(w:쓰기, r:읽기))
변수명.write('저장할 내용')
변수명.close() : close()를 안하면 계속 열려있음 -> 파일이 계속 닫아줘야해서 힘듦(메모리를 가지고 있음)
file = open('text.txt', 'w') file.write('파일 만들기 연습') file.close()
파일 읽기_open()
파일 열기변수명 = open('파일이름', 파일모드(r))
변수2 = 변수1.read()
변수1.close()
file1 = open('text.txt', 'r') my_file = file1.read() file1.close() print(my_file)

파일 읽기 쓰기_ with open()
with open()
with open은 close()를 하지 않아도 자동으로 close() 처리
with open('text2.txt', 'w') as file3: file3.write('with open을 사용하면 파일을 자동으로 닫아 편리함')
with open('text2.txt', 'r') as file4: data = file4.read() print(data)

파일 읽기_ encoding에 따른 읽기 오류
encoding에 따른 읽기 오류
운영체제나(windows, linux, macOS 등), 한국/영어 윈도우에 따라 인코딩 포멧 다름
인코딩에 따른 오류 발생 가능
web 표준은 utf-8이므로 인코딩은 utf-8로 하는 것이 좋음
windows의 경우 인코딩이 cp949이므로 주의
with open ('text_utf-8.txt', 'w', encoding='utf-8') as file5: file5.write('이것은 with open으로 만들 utf-8 인코딩 파일입니다.')
with open ('text_utf-8.txt', 'r', encoding='utf-8') as file6: file6_data = file6.read() print(file6_data)

+
jupyter notebook에서 파일 확인
에러가 발생한 이유는 UTF-8로 저장되지 않기 때문(window의 경우 CP949로 자동으로 인코딩되어 저장)

UTF-8로 저장된 경우

✔️ JSON 파일을 통한 데이터프레임 변환
JSON 파일
JSON(JavaScript Object Notation) : 데이터를 저장하고 교환하기 위한 경량 데이터 형식
Javascript에서 파생되었지만 모든 프로그래밍 언어에서 지원
객체(Object) : 중괄호 {}로 감싸며, "키:값" 쌍으로 데이터를 표현 예) {"name": "John", "age": 30}
배열(Array) : 대괄호 []로 감싸며, 순서가 있는 값들의 리스트 예) ["apple", "banana", "cherry"]
값(Value) : 문자열("string"), 숫자(number), 불리언(true/false), null, 객체, 배열 등이 가능
+
해당 파일이 필요하신 분은 이를 활용하여 코딩을 수행하면 좋을 것 같습니다.
(해당 데이터는 생성형 AI(Grok)를 통해 만든 가상의 데이터입니다(실제 데이터 X))
JSON 파일 읽기_open()
with open('./data/서울특별시_가상놀이공원입장정보.json', 'r', encoding='utf-8') as file8: info = file8.read() # print(trip_info) print(type(info))

json_문자열을 JSON/DICT 형식으로 변환
문자열을 JSON/DICT 형식으로 변환
json 라이브러리 활용
json.loads(함수)
import json visit = json.loads(info) print(len(visit)) visit[:2]

json_문자열 json파일을 데이터프레임으로 변환
json 파일을 데이터프레임으로 변환하는 과정
1. data 변수에 json.loads()로 문자열을 읽어온 파일 확인
2. 구조 파악하기 : 리스트-딕셔너리 구조로 구성
3. data는 리스트 안에 딕셔너리 세트로 저장됨
4. 각 딕셔너리에는 키로 json 파일의 정보가 저장
5. 딕셔너리에서 하나의 키당 딕셔너리의 갯수의 vlaue를 리스트 형태로 저장
6. pandas 이용해 dataframe으로 변환
result = {} # temp = [] ## 만약 해당 위치에서 정의된다면 변수 초기화가 진행되지 않음 for key in visit[0]: # print(data[0][key]) temp = [] for dicts in visit: # print(dicts[key]) temp.append(dicts[key]) result[key] = temp # print(result) result_df = pd.DataFrame(result) result_df

이번 내용에서는 파이썬 리스트 표현식, 파일 읽기/쓰기, JSON 파일을 통한 데이터프레임 변환에 대해 알아보았습니다.
데이터 분석을 하기 위해서는 가장 꾸준히 공부해야 하는 언어는 파이썬(Python)이라고 생각합니다.
앞으로 꾸준히 파이썬(Python) 내용을 공부하고 정리할테니 파이썬 코딩에 도움이 되었으면 좋겠습니다.
데이터를 가져오고 저장되는 DB에 대한 이해와 SQL 활용 능력도 중요하므로
제가 작성한 데이터 분석을 위한 SQL 글에 들어가서 DB와 MySQL에 대해 공부하면 좋을 것 같습니다.
'SQL/데이터 분석을 위한 MySQL' 카테고리의 글 목록
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
또한 데이터 크롤링을 위해서 웹개발 언어에 대한 이해도 필요하기 때문에
제가 작성한 데이터 분석을 위한 HTML / CSS / Javascript 글에 들어가서 웹 개발 언어에 대해 공부하면 좋을 것 같습니다.
'HTML & CSS & Javascript/데이터 분석을 위한 웹 개발 언어' 카테고리의 글 목록
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
제 블로그에 방문하면 데이터 분석과 관련된 다양한 정보들이 준비되어 있으니
관심 있는 분들은 방문해서 좋은 정보 얻어가시길 바랍니다.
ECODATALIST
데이터 분석 공부 열심히 하는 중😁
everyonelove.tistory.com
'Python > 데이터 분석을 위한 Python' 카테고리의 다른 글
[Python]파이썬_파이썬의 위치인수, 가변위치인수, 키워드 인수, 가변 키워드 인수 활용 (0) | 2025.03.28 |
---|---|
[Python] 파이썬_파이썬 함수 생성과 함수의 매개변수 및 return 값 (0) | 2025.03.27 |
[Python] 파이썬_파이썬 while문과 중첩반복문 활용 (0) | 2025.03.25 |
[Python] 파이썬_파이썬 for 반복문과 enumerate(), continue, break (0) | 2025.03.19 |
[Python] 파이썬_파이썬 if else 조건문과 elif 다중 조건문, 조건표현식 (1) | 2025.03.18 |