진료년월, 성분코드 입력 시 전국 데이터 가져오는 코드 1. ${일반 인증키(Decoding)} 부분에 본인의 일반 인증키(Decoding) 입력. service_key = "${일반 인증키(Decoding)}" 2. 진료년월(digay_ym)은 2022년 1월, 성분코드(gnl_nm_cd)는 488501ATB sido_sggu_lists에 있는 다섯개의 지역에 대해서만 for문을 돌며 데이터를 가져올 예정. diag_ym = '202201' # 진료년월 gnl_nm_cd = '488501ATB' # 성분코드 # [시도코드, 시군구코드] 쌍으로 되어 있는 리스트. sido_sggu_lists = [['220000','220003'], ['320000', '320100'], ['110000', '11001..
1. 공공데이터포털에서 오픈 API를 이용해 XML형식의 데이터를 받음. 2. 받은 xml파일을 pd.read_xml을 사용해 dataframe으로 바꿈. 1. 공공 데이터 포털 접속 사이트 주소: https://www.data.go.kr/index.do 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr 2. 원하는 공공데이터 검색 3. 오픈 API 탭 선택 4. 활용 신청 원하는 오픈 API에 들어가 '활용 신청' 버튼 클릭 이 글에서는 건강보험심사평가원_요양기관개폐업정보조회서비스를 기준으로 함. (링크: https:..
목적: python을 이용해 특정 구분자로 구분 되어 있는 문자열에서 제일 마지막 값만 없애기. import pandas as pd df = pd.DataFrame({'cat':['건>강', '디>지>털', '화>장>품']}) # df['cat'] = df['cat'].apply(lambda x: ">".join(x.split(">")[:-1])) Before After 참고로 샘플 데이터를 저렇게 만들어서 그렇지 실제로는 '건강>건강관리>마스크', '디지털>휴대폰액세서리>휴대폰케이스>기타케이스', '화장품>스킨케어>크림' 이런식으로 되어 있는 데이터였음. 본인의 데이터가 샘플 데이터처럼 생겼고, 저 상황에서 맨 마지막 두 글자만 떼고 싶으면 '화>장>품'[:-2] 이렇게 하면 됨. Data Frame에..
영업일 (Business day, working day) 시작 날짜부터 끝 날짜까지 총 몇 일의 working day가 있는지 카운트 pd.bdate_range import datetime import pandas as pd holidays_list = ['2022-05-05', '2022-05-08', '2022-06-01', '2022-06-06'] start_date = datetime.datetime.strptime('2022-05-01', "%Y-%m-%d").date() end_date = datetime.datetime.strptime('2022-05-30', "%Y-%m-%d").date() print (len(pd.bdate_range(start=start_date, end=end_dat..
Python에서 날짜, 시간 데이터 다루기 설명을 위한 Data Frame 생성 import pandas as pd time_df = pd.DataFrame({ '주문번호': ['1', '2', '3', '4', '5'], '주문일자': ['2022-07-11', '2022-07-11', '2022-07-11', '2022-07-11', '2022-07-11'], '주문시간': ['9:00', '9:30', '10:00', '10:30', '11:00'], '입금확인일시': ['2022-07-11 09:10', '2022-07-11 09:40', '2022-07-11 10:10', '2022-07-11 10:40', '2022-07-11 11:10'], '출고완료일시': ['2022-07-12 09:00..
import numpy as np import pandas as pd from sklearn.metrics import r2_score, mean_squared_error def r2_rmse( g ): r2 = r2_score( g['Actual'], g['Predicted'] ) rmse = np.sqrt( mean_squared_error( g['Actual'], g['Predicted'] ) ) return pd.Series( dict( r2 = r2, rmse = rmse ) ) your_df.groupby( 'Type' ).apply( r2_rmse ).reset_index() data frame에서 group by 후 custom된 집계함수 사용
value_count(값의 개수) / 차집합 'col2'라는 공통 컬럼을 가진 두 데이터 프레임을 비교하여 df2에는 있는데 df1에는 없는 'col2'값을 찾겠습니다. d1 = {'col1': ['a', 'b', 'c'], 'col2': [1, 2, 3]} df1 = pd.DataFrame(data=d1) drop_duplicates() d2 = {'col2':[2, 3, 3, 4]} df2 = pd.DataFrame(data=d2) # df2 내에서 중복된 값을 없애준다. df2 = df2.drop_duplicates().reset_index(drop=True) 위와 같이 두 Data Frame이 있을 때 df2에는 있고 df1에는 없는 '4'라는 값을 찾겠습니다. 먼저 df1에 df2를 concat..
drop id max # index 가 제일 큰 행 drop df = df.drop(df['col1'].idxmax()) String to datetime d = {'col1': [1, 2, 3], 'col2': [4, 5, 6], 'dt':['2022.03.05', '2022.07.11', '2022.12.31']} df = pd.DataFrame(data=d) # (1) pd.to_datetime # errors='coerce': 변경할 수 없으면 NaT 반환 df['dt'] = pd.to_datetime(df['dt'], errors='coerce') # (2) str datetime a = pd.to_datetime(df['dt'], format='%Y.%m.%d') # str -> datetim..
group by 'col1'을 기준으로 그룹 만들고 'col2'의 평균 값 사용 (mean, sum, count 사용 가능) d = {'col1': [1, 2, 3], 'col2': [4, 5, 6]} df = pd.DataFrame(data=d) df.groupby('col1')[['col2']].mean() df.groupby('col1', as_index=False)[['col2']].mean() # index reset reset index 할 때 already exists 오류날 경우 df.groupby(['col1', 'col2'])[['col2']].count().reset_index(drop=True) index to columns and reset index df.reset_index(l..
CSV 읽고 쓰기 읽기 df = pd.read_csv("./dataset.csv") 쓰기 df.to_csv("./dataset.csv", sep=',', float_format='%.f2', index=False) 경고 끄기 pd.set_option('mode.chained_assignment', None) Data Frame 생성 d = {'col1': [1, 2, 3], 'col2': [4, 5, 6]} df = pd.DataFrame(data=d) Data Frame index reset df.reset_index(inplace=True, drop=True) 행 선택/삭제 iloc(integer-location based)로 행 선택 df.iloc[0] # 0 번째 행 선택 (행만 series로) ..
- Total
- Today
- Yesterday