python

murata not public netkeiba data processing function

# 前提
# スクレイピングしたデータをresults.pickleというファイル名で取得済


import pandas as pd

# データの読み込み
results=pd.read_pickle('results.pickle')

def preproccessing(results):
    # 元のデータを変更しないために、コピー
    df = results.copy()
    # 着順に数字以外の文字列が含まれているものを取り除く
    df = df[~(df['着順'].astype(str).str.contains("\D"))]
    # 整数型に変換
    df['着順'] = df['着順'].astype(int)
    
    # 性齢を「性」「年齢」に分ける
    df['性'] = df['性齢'].map(lambda x:str(x)[0])
    df['年齢'] = df['性齢'].map(lambda x:str(x)[1:]).astype(int)
    
    # 馬体重を「体重」と「体重変化」に分ける
    df["体重"] = df["馬体重"].str.split('(', expand= True)[1].str[:-1].astype(int)
    df["体重変化"] = df["馬体重"].str.split('(', expand= True)[1].str[:-1].astype(int)
    
    # 単勝の型をfloat型に変換
    df['単勝'] = df["単勝"].astype(float)
    
    # 不要な列を削除
    df.drop(['タイム','着差','調教師','性齢','馬体重'],axis=1,inplace=True)
    
    return df
Was this helpful?