데이터 분석 자주 사용하는 기술

14947 단어 pandasPython3numpy

더미 변수화



새 데이터 이름 = pd.get_dummies (data = 이전 데이터 이름, columns = [ "더미 화하고 싶은 열 이름"])

원본 데이터 업데이트(inplace)


uselog_weekday.rename(columns={"log_id":"count"},inplace=True) #inplaceは元のデータを更新するか否か(Trueの時更新)

object 형의 일시 데이터를 datetime 형에



2019-12-16 09:09:00과 같은 데이터로부터, 년과 월만 추출하고 싶을 때,

datetime.py
import datetime
import pandas as pd
旧データ名["発信開始した日時"]=pd.to_datetime(旧データ名["発信開始した日時"])
旧データ名["発信開始時刻(~時)"]=旧データ名["発信開始した日時"].dt.strftime("%Y%H")
新データ名=旧データ名[["発信開始時刻(~時)","大職種名","アポ結果"]]
#カラム名はサンプルです



누락 값 확인



데이터 이름 .isnull().sum()

특정 누락 값이 있는 행 삭제



데이터 이름. dropna(subset = ["컬럼 이름"],inplace=True)

열의 요소 이름과 요소 수를 얻습니다.



import collections
print(collections.Counter(데이터 이름 ["열 이름"]))
データ名.groupby("カラム名").count()["分類したい要素が入ってるカラム名"]

groupby 후, 열 이름을 수정하고 싶습니다.


新データ名=旧データ名.groupby("customer_id").agg(["mean","median","max","min"])["count"]
新データ名=新データ名.reset_index(drop=False)#False!!

새로운 데이터(필요한 데이터만 원함) 만들기



새로운 데이터명 = 구 데이터명[["컬럼명1","컬럼명2"]]

함수를 만들고 적용하고 싶습니다.



예.py
def 適当な関数名(x):
    time = x
    ans=time//60
    if ans<=5:
      return ans

# personという新しい列を追加します。
データ名['新カラム名'] = データ名["旧カラム名"].apply(適当な関数名)

특정 열 삭제



del 데이터 이름 [ '열 이름']

그래프화 1(히스토그램)


import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
#カラム名1が横軸 countが縦軸 カラム名2がヒストグラム化される
sns.countplot(x = データ名["カラム名1"], hue = データ名["カラム名2"])

열 이름, 색인 이름 변경



데이터 이름 = 데이터 이름

특정 열 열의 요소 만 수집 한 데이터를 원합니다.


新データ名=旧データ名.loc[call2["大職種名"]=="営業"]
#""内はサンプルです 

특정 열 열의 요소를 그룹화하고 싶습니다 (중복 제거)


新データ名=旧データ名.groupby(["発信開始時刻(~時)"]).sum()
#カラム名はサンプルです

그래프 일본어 설정 (Google Colaboratory)


!apt-get -y install fonts-ipafont-gothic
!rm /root/.cache/matplotlib/fontlist-v310.json
pip install japanize-matplotlib
import pandas as pd
import matplotlib as plt
import japanize_matplotlib #日本語化matplotlib
import seaborn as sns
sns.set(font="IPAexGothic") #日本語フォント設定

NaN에 대한 기본값 설정







merge 할 때의 주의





where 사용법







결정 트리에서 학습한 모델 평가


#関数の処理で必要なライブラリ
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_score

#予測値と正解値を描写する関数
def True_Pred_map(pred_df):
    RMSLE = np.sqrt(mean_squared_error(pred_df['true'], pred_df['pred']))
    R2 = r2_score(pred_df['true'], pred_df['pred']) 
    plt.figure(figsize=(8,8))
    ax = plt.subplot(111)
    ax.scatter('true', 'pred', data=pred_df)
    ax.set_xlabel('True Value', fontsize=15)
    ax.set_ylabel('Pred Value', fontsize=15)
    ax.set_xlim(pred_df.min().min()-0.1 , pred_df.max().max()+0.1)
    ax.set_ylim(pred_df.min().min()-0.1 , pred_df.max().max()+0.1)
    x = np.linspace(pred_df.min().min()-0.1, pred_df.max().max()+0.1, 2)
    y = x
    ax.plot(x,y,'r-')
    plt.text(0.1, 0.9, 'RMSLE = {}'.format(str(round(RMSLE, 5))), transform=ax.transAxes, fontsize=15)
    plt.text(0.1, 0.8, 'R^2 = {}'.format(str(round(R2, 5))), transform=ax.transAxes, fontsize=15)

결정 계수로 모델 평가

좋은 웹페이지 즐겨찾기