목록개발일지/Python (11)
나의 기록

### 과제 목표 - 주어진 데이터는 1년 동안 Github public repository(개발자들의 코드 저장소)의 푸시 횟수입니다 - Github의 공개 저장소에 대한 기록은 모두에게 공개되어 있으며, Bigquery에 데이터베이스 형태로도 저장되어 있습니다 - 아래 데이터는 2019년 2월 1일 ~ 2020년 1월 14일, 약 1년간 각 일자별 Push(코드 업데이트) 횟수입니다 - 각 개인 별 데이터는 취합되었기 때문에 확인이 어려우며, 전 세계의 데이터이기 때문에 하루에도 수십만회 Push가 이루어집니다 - 본 과제의 목표는 **요일 별 Push 횟수에 유의미한 차이가 있는지 확인**하는 것입니다 - 이를 위한 **데이터의 기본적인 전처리**가 과제이며, 실제 통계 분석은 예시로 제공됩니다 i..

1. matplotlib.pyplot import matplotlib.pyplot as plt x = [1,2,3,4,5] y = [2,4,6,8,10] #선 그래프 그리기 plt.plot(x,y) plt.xlabel('X-axis') plt.ylabel('Y-axis') plt.title('Example Plot') plt.show() import pandas as pd df = pd.DataFrame({ 'A' : [1,2,3,4,5], 'B' : [5,4,3,2,1] }) df 선 그래프 그리기 df.plot(x='A', y='B') plt.show() 스타일 설정하기 ax = df.plot(x='A', y='B', color='green', linestyle='--', marker='o') plt..

1. GROUP BY 카테고리 그룹별로 연산 df.groupby('Category').mean() df.groupby('Category').sum() df.groupby('Category').count() df.groupby('Category').max() df.groupby('Category').min() tips_data.csv 활용해서 연습 df[['sex','day','total_bill', 'tip', 'size']].groupby(['sex', 'day']).mean() group by를 sex랑 day 기준으로 해준 것임. df[['sex','day','total_bill', 'tip', 'size']].groupby(['sex', 'day']).agg({'total_bill': 'max',..

1. concat() 함수 실습하기전 나도 강사님 따라 데이터 만들어주기 concat 이용해서 붙이고 보니 인덱스가 0,1,2,3으로 반복되는 것 확인 .reset_index로 인덱스 초기화 import pandas as pd # 두 개의 데이터프레임 생성 df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']}) df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5']}) # 위아래로 데이터프레임 연결 result_vertical = pd.concat([df1, df2], axis=0) # 좌우로 데이터프레임 연결 result_horizontal = pd.concat([..

특정 조건을 만족하는 데이터를 선택할 경우 (Boolean Indexing) Boolean Indexing 사용 방법 1. 단일 조건으로 필터링 # 'age' 열에서 30세 이상인 행 필터링 df[df['age'] >= 30] 2. 여러 조건으로 필터링 # 'age' 열에서 30세 이상이면서 'gender' 열이 'Male'인 행 필터링 df[(df['age'] >= 30) & (df['gender'] == 'Male')] df[(df['sex']== 'Male') | (df['smoker']=='Yes')] 여기서 '|' 는 or 역할 3. 조건에 따른 특정 컬럼 필터링 # 'age' 열에서 30세 이상인 경우의 'name' 열만 선택 df.loc[df['age'] >= 30, 'name'] df.lo..

더보기 데이터 불러오기 / 저장하기 엑셀 불러오기 / 저장하기 pd.read_excel('./파일명.확장자') # ./ ==> 현재 내가 있는 위치라는 의미 pd.read_csv('./파일명.확장자') # 불러올때 인덱스 지정하기 pd.read_csv('./data/file.csv' , index_col = '컬럼정보') pd.read_csv('./data/file.csv' , index_col = 0) # 0부터 시작 데이터 저장하기 - pd.to_csv('파일경로/파일명.확장자' , index = False) - pd.to_excel('파일경로/파일명.확장자' , index = False) 인덱스 import pandas as pd # 기본 정수 인덱스를 가진 데이터프레임 생성 df = pd.Data..

1. 지도 라이브러리 사용 선언 # 필요한 라이브러리 사용 선언하기 import folium from folium.plugins import MarkerCluster => folium: 분석한 데이터 결과를 지도에 그리기 위한 라이브러리 => MarkerCluster: 가까운 거리의 marker들을 군집시켜, 해당 건수를 표현해 줌. 2. 지도로 분석한 데이터 표시하기 (1) 대한민국 위도 경도 설정 하기 m = folium.Map(location=[37.5536067,126.9674308], zoom_start=11) m (2) 가공한 데이터를 반복문 으로 읽어서 지도에 찍어주기: 지도에 수강생 분포 그려주기 * 반복문 사용 방법 for x in 리스트: 수행할 문장 for n in result.ind..

1. 파일 불러오기 import pandas as pd sparta_data = pd.read_table ('/content/students_area_detail (1).csv',sep=',') * 우리에게 필요한 테이블 => '어떤' 수강생이 '어디에서' 주로 접속하는지 알아야 하니, '접속지역 (area)', '해당지역 위도(latitude)', '해당지역 경도 (longitude)', '유저아이디(user_id)' 필요 2. 지역 분류 하기 category_range = set(sparta_data['area']) print(category_range, len(category_range)) * SET() : 데이터의 중복값 제거 * LEN() : 리스트에 들어가 있는 원소 개수, 즉 리스트의 크기를..

import pandas as pd sparta_data = pd.read_table('/content/access_detail (1).csv',sep=',') print(type(sparta_data['access_date'][1])) format='%Y-%m-%dT%H:%M:%S.%f' sparta_data['access_date_time'] = pd.to_datetime(sparta_data['access_date'], format=format) sparta_data.tail(5) #[날짜 컬럼].dt.day_name 으로 해당 날짜의 요일을 가져 올수 있어요! sparta_data['access_date_time_weekday'] = sparta_data['access_date_time'].dt...

#스파르타 [미션1] 가장 적절한 고객 관리 타이밍 구하기 1. 파일 불러오기 #파일 불러오기 import pandas as pd sparta_data = pd.read_table('/content/access_detail (1).csv',sep=',') 2. 시간 데이터 전처리 해주기: access_date의 데이터 종류 확인 print(type(sparta_data['access_date'][1])) - type() 함수: 데이터의 종류 확인 가능 - access_date열에서 데이터 첫 번째 부분만 확인함. => 라고 나옴. access_date는 날짜 및 시간이 아닌 "문자열" 우리가 원하는 것은 데이터의 "시간" 형태이므로 전처리를 통해 시간 형태로 바꾸기 3. 문자형 데이터 시간의 데이터 형태..