반응형

데이터분석 44

<Python> 람다 Lambda Expression

람다 함수는 기존의 함수를 정의하는 과정을 생략하고 함수를 사용하는 방식이다. 7x+1이라는 식을 파이썬으로 함수로 표현하면 아래와 같다. 1 2 3 4 def f(x): return 7x+1 cs 먼저 f라는 함수의 이름을 정의해주고 소괄호 안에 매개변수 x를 지정해준다. 그리고 함수 f와 매개변수 x의 값을 지정해주면 그 값을 계산할 수 있게 return 값으로 7x+1을 지정해준다. x의 값이 2라면 그 값은 15가 된다. 1 2 3 4 def f(x): return 7x+1 print("f(x) = 7x+1") print("f(2) : "+str(f(2))) cs [실행결과] 그렇다면 람다함수로는 어떻게 7x+1이 표현이 되는가는 아래와 같다. 1 lambda x: 7*x+1 cs 람다식을 사용하..

<matplotlib> 실시간 데이터 반영 그래프

1. 기본 구조 2. csv 파일 읽어들여 만들기 1. 기본 구조 사용한 라이브러리 random -> 무작위의 수를 생성하기 위해 사용합니다. intertools.count -> 1,2,3... 순차적인 수를 생성하기 위해 사용합니다. pandas matplotlib.pyplot matplotlib.animation -> animation 효과, 실시간 데이터 반영을 위해 사용합니다. 사용한 메서드 index = count() next(index) -> 순차적인 수를 생성해냅니다. random.randint(0,5) -> 0~5 사이의 랜덤한 정수를 생성합니다. plt.cla() -> 앞선 그래프를 삭제합니다. ani = FuncAnimation(plt.gcf(), animate, interval = 1..

<Matplotlib> 산점도 그리기

1. 기본적 산점도 그리기 2. 점 모양, x,y 축의 이름 지정 3. log - scale 4. 색과 다른 정보 추가 matplotlib을 통해서 산점도를 그리는 방법에 대해서 알아보겠습니다. *사용한 자료는 제 블로그의 adsense 한달 간의 노출RPM과 노출수의 상관관계를 파악해 보겠습니다. **그리고 추가로 노출가능한 active_view의 퍼센테이지 역시 어떤 상관관계를 가지고 있는지 알아보겠습니다. 1.기본적인 산점도 그리기 산점도는 plt.scatter(x,y)를 통해서 그릴 수 있습니다. 저의 x는 노출수, y는 노출rpm으로 지정했습니다. plt.scatter(노출수,노출rpm) 을 사용하면 바로 산점도가 나타납니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 import p..

<python> list 조작 함수 모음

[조작함수] 함수 설명 사용법 append() 리스트 제일 뒤에 항목을 추가한다. 리스트.append(값) pop() 리스트 제일 뒤의 항목을 빼내고 삭제한다. 리스트.pop() sort() 항목을 정렬한다. 리스트.sort() reverse() 역순 정렬 리스트.reverse() index() 지정한 값을 찾아 위치 반환 리스트.index(찾을값) insert() 지정한 위치에 값을 삽입 리스트.insert(위치,값) remove() 지정한 값을 제거한다. 리스트.remove(지울 값) extend() 리스트 위에 리스트를 추가한다. 리스트.extend(다른 리스트) count() 리스트에서 찾을 값의 개수를 센다 리스트.count(찾을 값) del() 리스트에서 해당 위치의 항목을 삭제한다 del 리..

서울 코로나 요일별 확진자 비율 (2020.01.24~ 2021.08.17 )

*pie chart를 이용하여 요일별 확진자 비율을 시각화해 보았습니다. *explode를 이용해 최고비율_요일와 최저비율_요일를 강조했습니다. *비율의 0아래의 자릿수를 두자리로 제한했습니다. [전체 코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import pandas as pd from matplotlib import pyplot as plt df = pd.read_csv("seoul_corona_now - seoul_corona_now.csv",parse_dates = ['확진일','등록일','수정일']) df['확진_요일']=df['확진일'].dt.day_name() count_요일 = df['확진_요일'].value_co..

<Python> dictionary 자료형의 list 자료형으로 변환

1. 단순변환 list() 2. 정렬하여 변환 (1) key 값을 이용하여 정렬하여 변환 *key값으로 정렬하면서 key와 value 모두 그 정렬에 따라 list로 변환하기 (2) value 값을 이용하여 정렬하여 변환 1. 단순변환 list() dictionary 자료를 list로 변환하기 위해서는 list(dic자료 변수명)을 사용해주면 됩니다. 이렇게 하면 key값으로 구성된 list 가 형성됩니다. value로 구성된 list를 생성하려면 list(사전.values()) 를 사용해주면 됩니다. (key,value)의 형태를 가진 튜플로 구성된 리스트로 변환하기 위해서는 list(zip(사전.keys(),사전.values())) 으로 zip()으로 묶어서 만들어주면 됩니다. 2. 정렬하여 list..

서울 일별 코로나 확진자 수 그래프 그리기

지금까지 배웠던 pandas와 matplotlib을 이용하여 서울 코로나 확진자 수를 그래프로 나타내 보았습니다. row 값에 환자 한명의 정보가 나타나 있기 때문에 확진일을 이용하여 value_counts()를 사용해 일일 확진자의 수를 뽑았습니다. xtick이 너무 많아서 '2020-01-24','2020-05-24','2020-10-24','2021-03-24','2021-08-17' 이렇게 다섯 날짜만 표시되도록 했습니다. 평균값을 중심으로 평균 이상과 평균 이하를 표현하기 위해 plt.fill_between을 사용했습니다. 선의 굵기의 기본값인 2는 너무 굵어서 1.5로 선의 굵기를 변경했습니다. [전체 코드] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19..

<Matplotlib> 선 그래프 사이를 채워서 차이 나타내기

일반적인 선 그래프에 비해서 평균값과 혹은 선그래프사이의 차이를 채워줌으로써 더욱 전문적인 그래프로 보이게 할 수 있습니다. matplotlib 에서는 fill_between()을 사용하여 공간을 채울 수 있습니다. 1. 일반적 선그래프 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from matplotlib import pyplot as plt 등급 = [0,1,2,3,4,5,6] 맑음_기록 = [103.54,98.87,96.75,92.47,86.85,82.17,75.66] 비_기록 = [114.72,100.10,91.60,90.12,83.63,88.26,80.71] 기록_평균 = 84.78 plt.plot(등급,맑음_기록,label = '맑음_기록'..

어느 정도 노하우가 쌓인 xml 공공데이터 parsing과 CSV 저장

* 필요한 라이브러리 1. 파싱하기 전에 반드시 해야 할것 1)미리보기를 통한 데이터형태 파악하기 2)참고문서 다운받기 2. 파싱시작하기 1) 라이브러리 불러오기 2) 요청 명세를 보고 url 잘게자르기 3) Beautifulsoup와 lxml을 이용하여 데이터 파싱하여 다시 형태파악 4) 파싱할 함수 짜기 (예외처리 반드시 넣기) 5) pandas에 사용할 수 있는 표 형태로 저장하기 3. 다음에 빠르게 불러 올 수 있게 csv 파일로 저장하기 4. 전체 코드 바로가기 *이 글은 pandas를 편하게 사용하기 위해 jupyter notebook을 사용했습니다. **이 글을 위해 사용한 공공데이터는 "공공데이터활용지원센터_보건복지부 코로나19 감염 현황" 입니다. ***공공데이터 xml을 파싱하기 위해서..

<Python Matplotlib> Stack Plot 누적 그래프 그리기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 from matplotlib import pyplot as plt #그래프 스타일입니다. plt.style.use("fivethirtyeight") #x축에 표시될 수치들입니다. minutes = [1,2,3,4,5,6,7,8,9] #각 분마다 player들이 획득한 점수입니다. player1 = [1,2,3,3,4,4,4,4,5] player2 = [1,1,1,1,2,2,2,3,4] player3 = [1,1,1,2,2,2,3,3,3] #색은 파랑 빨강 초록입니다. colors = ['008..

반응형