1
私はデータフレーム「df_ret_temp」を持っているなぜdataframe.appyコストあまりにも多くの時間
私は列accMonth値を設定します。私は、列accMonth values.Theコードを設定する機能を適用する際に使用 コードがありますが、あまりにも多くの時間を要し、しかし速い
df_ret_temp.loc[df_ret_temp['tradeDate'].str[5:7]<='03','accMonth']=df_ret_temp['tradeDate'].str[0:4].apply(lambda x:str(int(x)-1))+'12'
df_ret_temp.loc[(df_ret_temp['tradeDate'].str[5:7]<='06') &
(df_ret_temp['tradeDate'].str[5:7]>'03'),'accMonth']=df_ret_temp['tradeDate'].str[0:4]+'03'
df_ret_temp.loc[(df_ret_temp['tradeDate'].str[5:7]<='09') &
(df_ret_temp['tradeDate'].str[5:7]>'06'),'accMonth']=df_ret_temp['tradeDate'].str[0:4]+'06'
df_ret_temp.loc[(df_ret_temp['tradeDate'].str[5:7]<='12') &
(df_ret_temp['tradeDate'].str[5:7]>'09'),'accMonth']=df_ret_temp['tradeDate'].str[0:4]+'09'
を実行します。
def df_ret_tempFun(row):
if row['tradeDate'][5:7]<='03':
row['accMonth']=str(int(row['tradeDate'][0:4])-1)+'12'
elif row['tradeDate'][5:7]<='06' and row['tradeDate'][5:7]>'03':
row['accMonth']=row['tradeDate'][0:4]+'03'
elif row['tradeDate'][5:7]<='09' and row['tradeDate'][5:7]>'06':
row['accMonth']=row['tradeDate'][0:4]+'06'
else:
row['accMonth']=row['tradeDate'][0:4]+'09'
return row
df_ret_temp=df_ret_temp.apply(df_ret_tempFun,axis=1)
なぜ、適用機能のパフォーマンスが低下しますか?