pandas(33)
-
Pandas 중복되는 값의 시작점과 누적후에 끝점 위치 구해보기
조건을 줘서 누적까지 감안한 위치를 구하고 싶다 만약에 아래 그림처럼 elu는 (0,0) leaky_relu(1,2), selu(3,3) leaky_relu(4,6) 이런 식으로 구해야했다. import pandas as pd data = pd.read_csv("./save_parameter.csv") data.head() (data["activation"].\ groupby((data['activation'] != data['activation'].shift(1)).cumsum()).cumcount()+1).head(7) 여러 번의 삽질을 통해서 구할 수 있게 됐다 ㅠㅠㅠ 아주 긴 함수를 만들게 됬다 ㄷㄷㄷ def find_index(x): df_by_group = pd.DataFrame(x.index..
2020.07.14 -
Pandas 에서 Plotly backend 사용하기
import pandas as pd, seaborn as sns import plotly.express as px tips = sns.load_dataset('tips') tips['tip'].plot(kind = 'hist') plotly 4.8 버전부터 된다고 함. pd.options.plotting.backend = "plotly" 이렇게 사용하면 된다! tips[['tip', 'smoker']].plot.box(facet_col = 'smoker') tips.plot.scatter(x = 'tip', y='total_bill') https://plotly.com/python/box-plots/ Box Plots How to make Box Plots in Python with Plotly. plo..
2020.07.02 -
pandas useful tip
frame = pd.DataFrame(np.random.randn(4, 3), columns=list('bde'), index=['Utah', 'Ohio', 'Texas', 'Oregon']) frame def f(x): return pd.Series([x.min(), x.max()], index=['min', 'max']) frame.apply(f) # axis =1 (각 열) frame.apply(f,axis="columns") format = lambda x: '%.2f' % x frame.applymap(format) report = pd.DataFrame([ [1, 10, 'John'], [1, 20, 'John'], [1, 30, 'Tom'], [1, 10, 'Bob'], [2, 25, 'Jo..
2020.06.25 -
pandas apply를 사용하여 다중 컬럼(multiple columns) 만들기
from sklearn.datasets import load_boston feature = load_boston() boston_data = pd.DataFrame(feature.data , columns=feature.feature_names) boston_data.head() def f(x, col1 , col2) : x , y = x[col1] , x[col2] plus = x+y minus = x-y multiply = x*y return pd.Series([plus,minus,multiply]) from functools import partial ff = partial(f , col1 = "CRIM", col2="RM") boston_data[["plus","minus","multiply"]]..
2020.06.09 -
pandas 의 filter 함수로 변수 선택하기
1. regex를 이용해서 특정 조건을 만족하는 변수만 찾아보기 a 에서는 _ 다음에 숫자 1~9 , 영어 a-z , 한글 가-힣 이 나오면 선택하기 b 에서는 _ 다음에 숫자 0~5 , 영어 a-z 나오면 선택하기 col = ["a_1111","a_23.0","a_3_rk","a_가","a_a", "a_0.0"] + ["b_1","b_2","b_89","b_가","b_a","b_0"] arr = np.random.uniform(size=(10,len(col))) data = pd.DataFrame(arr, columns=col) can = ["a","b"] filters = "_[1-9a-zA-Z가-힣]|".join(can)+"_[0-5a-zA-Z]" filters data.filter(regex = ..
2020.05.19 -
[ Python ] 정형데이터 용량 줄이는 함수 소개 (연속형, 이산형, 문자형)
광고 한 번씩 눌러주세요! 블로그 운영에 큰 힘이 됩니다 :) 파이썬에서 데이터를 그냥 사용하다 보면, 데이가 엄청 커서 불편할 때가 있다. 그래서 필자는 연속형,이산형,문자형에 따라 용량을 줄여주는 함수를 소개하겠다. ## 데이터 크기 확인 함수 def mem_usage(pandas_obj): if isinstance(pandas_obj,pd.DataFrame): usage_b = pandas_obj.memory_usage(deep=True).sum() else: # we assume if not a df it's a series usage_b = pandas_obj.memory_usage(deep=True) usage_mb = usage_b / 1024 ** 2 # convert bytes to me..
2020.04.12 -
pandas describe에 결측데이터 개수 포함해서 표현해보기
pandas에서 요약 통계를 적을 때 결측에 대한 정보는 제공하지 않는다. des1 = data[fac_col].astype(str).describe() des1 그래서 다음과 같은 방법으로 결측에 대한 정보나 다른 정보를 쉽게 합쳐서 표현할 수 있다. des1 = data[fac_col].astype(str).describe() des2 = data[fac_col].isnull().sum().to_frame(name = 'missing').T pd.concat([des1, des2]) 만약 결측률까지 포함시키고 싶다고 하면 다음과 같이 코드를 추가하면 된다. des1 = data[fac_col].astype(str).describe() des2 = data[fac_col].isnull().sum().t..
2020.04.08 -
sklearn을 활용한 Custom Outlier Transformer 만들어보기
광고 한 번씩 눌러주세요. 블로그 운영에 큰 힘이 됩니다 :) 특정 모델을 열심히 돌려보는데, Train data은 AUC가 100%를 찍지만, Test Data는 77%를 찍고 더 이상의 성능 향상이 되지 않았다. 이러한 점을 해결하기 위해서Weight으 정규화를 하던지, 전처리 방식을 바꿔봤지만, 동일한 성능이 계속 나왔다. 그래서 남은 방법은 머 많이 있겠지만, 그중에서 Outlier 부분을 고려해보기로 하였다. 하지만 실제로 적용하였지만, 오히려 더 overfitting을 시키는 것 같다 ㅎㅎㅎ 그래도 이왕 Outlier Transformer를 만들었으니, 공개함. Outlier 체크하는 부분은 일반적으로 통계에서 사용하는 IQR 방식을 적용하기로 하였다. IQR이란 Quantile(0.75) -..
2020.02.24 -
[ Python ] sklearn_pandas 로 정형데이터 전처리하기(Preprocessing)
광고 한 번만 눌러주세요 블로그 운영을 하는 데 있어서 큰 힘이 됩니다. : ) 파이썬으로 분석을 하다 보면 sklearn과 pandas는 정형 데이터에서 자주 사용하는 패키지일 것이다. 정형 데이터에서 보통 범주형 데이터와 수치형 변수를 나눠서 전처리를 할 때 2개를 같이 쓰게 된다. 하지만 각각의 변수별로 처리를 하게 된다면 보통 다음과 같이 진행할 것이다. from sklearn.compose import ColumnTransformer from sklearn.pipeline import Pipeline from sklearn.impute import SimpleImputer from sklearn.preprocessing import StandardScaler, OneHotEncoder imp =..
2020.01.19 -
[ Python ] pandas 읽고 쓰기 비교 (to_csv , to_pickle , to_feather)
도움이 되셨다면, 광고 한번만 눌러주세요. 블로그 관리에 큰 힘이 됩니다. 파이썬에서 분석을 하실 때 아무래도 가장 편하게 생각할 수 있는 것은 판다스를 활용하는 방법일 것이다. 그리고 저와 같은 개발쪽 초보자들은 가장 편한 to_csv , read_csv로 데이터를 저장하고 읽을 것이다. csv로 저장하면 다른 곳에서도 쓸 수 있어 편하지만, 데이터 자체를 저장하는 것에는 별로 좋지 않아 보인다. 왜냐하면 판다스로 읽고 쓰는 것이 빅데이터에서는 많은 시간을 소요하기 때문이다. 그래서 본 글에서는 csv , pickle, feather 총 3가지를 비교해보고자 한다. 여러 가지 방식(hdf , parquet)이 있지만, 이번 글에서는 다른 방식도 있다는 것을 말하고 싶기 때문에 궁금하시면 찾아서 하시면 ..
2019.12.21 -
[ Python ] Pandas idxmin , idxmax, pd.cut 함수 알아보기
데이터셋 만들기 from sklearn.datasets import load_iris import numpy as np import pandas as pd Iris = load_iris() concat = np.concatenate( (Iris.data , np.array(Iris.target).reshape(-1,1)) , axis = 1) data = pd.DataFrame(concat , columns = Iris.feature_names + ["Species"]) 가끔 먼가 데이터에서 가장 작은 값? 큰 값을 찾고 싶을 때가 있다. 그럴 때 보통 코드는 다음과 같다. idxmin() , idxmax() ## min data[data['sepal length (cm)'] == data['sepal ..
2019.10.29 -
[ Python ] modin 으로 pandas 더 빠르게 사용하기
https://modin.readthedocs.io/en/latest/installation.html 1. Installation — Modin 0.6.0 documentation 1. Installation There are a couple of ways to install Modin. Most users will want to install with pip, but some users may want to build from the master branch on the GitHub repo. 1.1. Installing with pip 1.1.1. Stable version Modin can be installed with pi modin.readthedocs.io 후배가 한번 언급을 해서 궁금해서 ..
2019.09.28