python计算的效率问题-pandas、numpy结合代替遍历pandas数据

越来越考虑效率的问题了,以前写代码只要能够实现自己想要的功能就行,现在,既要实现自己想要的功能,又追求高的效率,也许,在码农的道路上,越走越远了(_-_)

原始数据如下:

python计算的效率问题-pandas、numpy结合代替遍历pandas数据_第1张图片

计算那一天是月初,原先使用的方法为:在这种情况下,遍历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



你可能感兴趣的:(python,pandas)