본문 바로가기

판다스12

파이썬 판다스 - 크롤링으로 얻은 csv 파일들을 concat으로 모두 합치기 크롤링을 하면서 중간중간 백업을 하다보니 여러 csv 파일이 생겨났다. pandas 의 concat 메소드를 사용하여 여러 csv 파일을 하나로 합치려고 한다. import pandas as pd import numpy as np import os # 파일들이 있는 폴더명으로 폴더내 파일 목록 확인 forders = os.listdir('관세') print(forders) df_all = pd.DataFrame() for i in range(0,len(forders)): if forders[i].split('.')[1] == 'csv': file = '관세/'+forders[i] df= pd.read_csv(file,encoding='utf-8') df_all = pd.concat([df_all, df].. 2021. 9. 10.
파이썬 '판다스 데이터 분석' - 시계열 데이터 판다스는 주식, 환율 등 금융 데이터를 다루기 위해 개발되었기에 시계열 데이터를 다루는 여러 가지 유용한 기능을 제공한다. 데이터는 주가 샘플 데이터를 사용하였다. import pandas as pd df = pd.read_csv('data/stock-data.csv') df.head() DateCloseStartHighLowVolume 02018-07-0210100108501090010000137977 12018-06-291070010550109009990170253 22018-06-2810400109001095010150155769 32018-06-2710900108001105010500133548 42018-06-261080010900110001070063039 df.info() RangeIndex.. 2021. 7. 31.
파이썬 판다스 - agg(func, axis, *args, **kwargs) pandas.DataFrame.agg — pandas 1.3.0 documentation list of functions and/or function names, e.g. [np.sum, 'mean'] pandas.pydata.org Aggregate using one or more operations over the specified axis. 자세한 사용법은 판다스 공식 문서에서 확인 가능하다. 데이터 프레임 # 데이터프레임 구조 df.sample() 학교명지역설립구분1학년2학년3학년4학년5학년6학년 4183청소초등학교충청남도공립111111 df.iloc[:,3:9].agg(['sum','min','max','mean']) 1학년2학년3학년4학년5학년6학년 sum19145.00000018909.000.. 2021. 7. 29.
파이썬 판다스 sidetable : df.stb.freq(..) - Create Simple Summary Tables in Pandas, 합계와 빈도수 참고 사이트 sidetable - Create Simple Summary Tables in Pandas - Practical Business Python Tue 02 June 2020 Posted by Chris Moffitt in articles Introduction Today I am happy to announce the release of a new pandas utility library called sidetable. This library makes it easy to build a frequency table and simple summary of missing values in pbpython.com 설치 !pip install sidetable 예시 import sidetable df.. 2021. 7. 27.
파이썬 '판다스 데이터 분석' - 데이터프레임에 함수 적용 .apply() 데이터프레임의 개별 원소를 특정 함수에 일대일 대응시키는 과정을 함수 매핑이라고 한다. 람다 함수를 포함하여 사용자 정의 함수를 적용할 수 있기 때문에 판다스 기본 함수로 처리하기 어려운 복잡한 연산을 데이터프레임 등 판다스 객체에 적용하는 것이 가능하다. import seaborn as sns titanic = sns.load_dataset('titanic') df = titanic.loc[:,['age','fare']] df['ten'] = 10 df.head() agefareten 022.07.250010 138.071.283310 226.07.925010 335.053.100010 435.08.050010 df.info() RangeIndex: 891 entries, 0 to 890 Data co.. 2021. 7. 25.
파이썬 '판다스 데이터 분석' - 정규화 MinMax, Standard 변수의 범위가 다르면 상대적으로 큰 숫자 값을 갖는 변수의 영향이 더 커진다. 숫자 데이터의 상대적인 크기 차이를 제거할 필요가 있다. MinMaxScaler 기법 y = x - 최소 / 최대 - 최소 min_x = df.horsepower - df.horsepower.min() min_max = df.horsepower.max() - df.horsepower.min() df_result = min_x / min_max df_result 0 0.456522 1 0.646739 2 0.565217 3 0.565217 4 0.510870 ... 393 0.217391 394 0.032609 395 0.206522 396 0.179348 397 0.195652 Name: horsepower, Length: 3.. 2021. 7. 23.
파이썬 '판다스 데이터 분석' - 범주형(카테고리) 데이터 처리 -> 구간 분할 cut(), 더미 변수 get_dummies(Series):원핫인코딩, factorize(Series):라벨인코딩 연속 데이터를 일정한 구간 (bin) 으로 나눠서 분석하는 것이 효율적인경우가 있다. 가격, 비용, 효용 등 연속적인 값을 일정한 수준이나 정도를 나타내는 이산적인 값으로 나타내어 구간별 차이를 드러내는 것 구간 분할 - 각 구간을 범주형 이산 변수로 변환하는 과정을 구간 분할(binning)이라고 한다. np.histogram bins = 구간 갯수, 반환값 -> count = 각 구간에 속하는 값의 개수 bin_dividers = 경계값 리스트 import numpy as np # np.histogram 함수로 3개의 bin으로 구분할 경계값의 리스트 구하기 count, bin_dividers= np.histogram(df.horsepower, bins =3) print(count, bin_divid.. 2021. 7. 21.
파이썬 '판다스 데이터 분석' - 단위 변환, 자료형 변환 .astype('float'), unique(), nunique(), replace({ type: dict},inplace=True) 단위 변환 서로 다른 단위가 섞여 있거나 같은 대상을 다른 형식으로 표현하면 분석의 정확도는 현저히 낮아진다. 데이터 포맷을 일관성있게 표준화 하는 작업이 필요하다. 마일 야드 온스 -> 미터 평 그램 import pandas as pd df = pd.read_csv('data/auto-mpg.csv', header=None) df.columns=['mpg','cylinders','displacement','horsepower','weight','acceleration','model year','origin','name'] 마일 -> 킬로미터 mpg_to_kpl = 1.60934/3.78541 df['kpl'] = (df['mpg'] * mpg_to_kpl).round(2) df['kpl'].head().. 2021. 7. 19.
파이썬 '판다스 데이터 분석' - 결측치 처리 : replace(), dropna(subset= ), fillna(), value_counts().idxmax(), duplicated(), drop_duplicates() 데이터프레임에는 원소 데이터 값이 종종 누락되는 경우가 있다. 데이터를 파일로 입력할 때 빠트리거나 파일 형식을 변환하는 과정에서 데이터가 소실되는 것이 주요 원인이다. 일반적으로 유효한 데이터 값이 존재하지 않는 누락 데이터를 NaN( Not a Number ) 으로 표시한다. '타이타닉 데이터셋을 사용 import seaborn as sns df= sns.load_dataset('titanic') 결측된 데이터 확인 df.info() RangeIndex: 891 entries, 0 to 890 Data columns (total 15 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 survived 891 non-nul.. 2021. 7. 17.
파이썬 '판다스 데이터 분석' - 함수 : sample(), .at[idx,'컬럼명'],pop('컬럼명') ,nlargest(idx, list), isin([]) 그 밖의 df 함수 랜덤한 한 행의 데이터 보기 df.sample() mpgcylindersdisplacementhorsepowerweightaccelerationmodel yearoriginname 25525.14140.088.002720.015.4781 ford fairmont (man) 하나의 값에 접근 df.at[idx, '컬럼명'] df.at[397,'mpg'] 31.0 한 컬럼 전체가 반환되고 원 데이터프레임에서 drop 된다. Return item and drop from frame. Raise KeyError if not found. df.pop('mpg') 가장 큰 값 n 번째까지 리턴 df.nlargest(idx, list) >>> df.nlargest(3, ['a', 'c']) a b.. 2021. 7. 14.
파이썬 '판다스 데이터 분석' - 엑셀 파일 읽기 (xlsx, csv), 여러 엑셀 파일 읽기,캐글 제출을 위한 DataFrame 판다스는 다양한 형태의 외부 파일을 읽어와서 데이터프레임으로 변환하는 함수를 제공한다. 그 중에서 엑셀 파일 중심으로 읽어오는 것을 목표로 한다. .read_xxx() 함수에 여러 옵션을 추가 할 수 있다. dtype='unicode' 기본 import pandas as pd df = pd.read_excel('data/danawa_data.xlsx') df.head() 가격에 콤마 없애기 import pandas as pd df = pd.read_excel('data/danawa_data.xlsx',thousands = ',') df.head() https://rfriend.tistory.com/463 [Python pandas] DataFrame에서 천 단위 숫자의 자리 구분 기호 콤마(',')를 없.. 2021. 7. 5.
파이썬 '판다스 데이터 분석' - 판다스 입문 판다스 공식 홈페이지 pandas - Python Data Analysis Library pandas pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language. Install pandas now! pandas.pydata.org 데이터 활용 공모전 준비와 인공지능(AI)에 필요한 머신러닝을 익히기 위해 우선 데이터 분석을 공부하게 되었다. 판다스를 배우는 이유 - 데이터 분석에서는 데이터 자체가 가장 중요한 자원이다. - 실제로 데이터 분석 업무의 80% ~ 90%는 데이터를 수집하고 정리하는 일.. 2021. 7. 2.