python計算的效率問題-pandas、numpy結合代替遍歷pandas資料
阿新 • • 發佈:2019-02-18
越來越考慮效率的問題了,以前寫程式碼只要能夠實現自己想要的功能就行,現在,既要實現自己想要的功能,又追求高的效率,也許,在碼農的道路上,越走越遠了(_-_)
原始資料如下:
計算那一天是月初,原先使用的方法為:在這種情況下,遍歷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