dataframe
-
pandas DataFrame join merge concat 연산 속도 비교데이터분석 2021. 7. 30. 01:00
0. Intro pandas DataFrame을 join해야하는 경우는 매우매우 빈번하다. 그래서 join 방법들을 모두 정리해볼까 한다. # 준비한 데이터는 다음과 같음 print(raw.shape) # (9142946, 21) print(address.shape) # (1396049, 11) 1. 단일 column 기준 join 한 개의 column을 기준으로 join하는 방법들과 성능은 다음과 같음 결론: join 할 때 index를 바로 지정하지 말자;; # pd.merge 사용 %%timeit merge_on = pd.merge(raw, address, how='left', left_on='CI', right_on='CI') # 42.1 s ± 178 ms per loop (mean ± std...
-
pandas groupby 활용하기데이터분석 2019. 10. 10. 20:18
데이터분석시, 특정 조건의 group별 연산이 매우 빈번하게 발생합니다. Pandas DataFrame에서 해당 작업들을 처리하는 방식을 알아봅니다. 01. groupby basic 기본적인 데이터 집계 방법을 살펴봅니다. # DataFrameGroupBy object 생성 grouped = mydf.groupby('mycolumn') # DataFrameGroupBy object는 Iterable for name, group in grouped: print(name) display(group) # 각 그룹별 head 확인도 가능 grouped.head(3).head(5) # 집계 방법1 -> {열:연산} dict를 입력 mydf.groupby('mycolumn').agg({..
-
pandas 테이블 양식 수정하기데이터분석 2019. 10. 10. 20:13
Pandas DataFrame의 layout을 원하는 형태로 바꾸는 방법에 대해 살펴봅니다. 01. stack & melt & pivot 수평 열 이름을 수직의 관측치로 만들어줍니다. # 모든 열의 이름을 Index로 변환 mydf.stack() # stack 함수를 원복 mydf.unstack # id_vars: 유지, value_vars:전치 *즁요한사실: 기존Index는 삭제됨 mydf.melt(id_vars=['col1'], value_vars=['col2', 'col3'], var_name='n1', value_name='n2') # melt 함수를 원복 mydf.pivot(index=['col1'], columns=['n1'], values='n2') 02. wide_to_long 동일한 용어..
-
pandas basic 03데이터분석 2019. 10. 10. 20:11
01. Subsetting 전체 테이블 중 일부 테이블을 선택하는 방법을 알아봅니다. # Select a column with slicer mydf['col1'] # iloc / loc indexer mydf[5] mydf[[10, 20]] mydf.loc[index, column_names] mydf.iloc[index_nums, column_nums] mydf.loc[st_row:ed_row, st_col:ed_col] # iat / at indexer mydf.iat[row_num, col_num] mydf.at[row, col] # Select rows mydf[mydf[col1] == value] 02. Boolean Indexing 불린 인덱싱에 대해 알아봅니다. # A Bool..
-
pandas basic 02데이터분석 2019. 10. 10. 20:08
01. Column Selection there are a few ways to select columns in a DataFrame. # select by indexing mydf[[col1, col2, col3]] # select by dtype mydf.select_dtypes(include=['int']) # select by filter mydf.filter(like='flag') mydf.filter(regex='\d') mydf.filter(like='pre_') # ex1) select columns having NaN null_cols = (mydf.select_dtypes(['object']).isnull().sum..
-
pandas basic 01데이터분석 2019. 10. 10. 20:04
1. pandas basic elements index = myData.index columns = myData.columns data = myData.values 2. Data types # check all data types myData.dtypes # counts them myData.get_dtype_counts() 3. Handling a Series Select a column # choose one myData['column_name'] myData.column_name if you want to treat it as a dataframe, mySeries.to_frame() check frequencies # total mySeries.size mySeries.shape l..