1. 程式人生 > >python計算的效率問題-pandas、numpy結合代替遍歷pandas資料

python計算的效率問題-pandas、numpy結合代替遍歷pandas資料

越來越考慮效率的問題了,以前寫程式碼只要能夠實現自己想要的功能就行,現在,既要實現自己想要的功能,又追求高的效率,也許,在碼農的道路上,越走越遠了(_-_)

原始資料如下:


計算那一天是月初,原先使用的方法為:在這種情況下,遍歷pandas,明顯效率很不高

def get_yuechu(data):
    for i in range(len(data)):
        if i>1 and str(data.ix[i,'date'])[5:7]!=str(data.ix[i-1,'date'])[5:7]:
            data.ix[i,'yuechu']=True
        else:
            data.ix[i,'yuechu']=False
    return data

接下來對計算那天是月初的方法做了改進,改進之後,效率有了明顯的提升

def get_yuechu(data):
    data['date_yue']=[i[5:7] for i in data['date']]
    data['yestoday_yue']=data['date_yue'].shift(1)
    data['yuechu']=np.where(data['date_yue']!=data['yestoday_yue'],True,False)
    return data