数据共有如下几列,100行左右
Index(['区域', '网点名称', '网点编码', 'S', 'M', 'L', 'XL', 'XXL', 'XXXL', '4XL', '5XL', '总计:']
''' 法一 使用循环 按照行遍历'''
time1_1 = datetime.datetime.now()
clothes['LEN'] = numpy.nan
for row_loc in range(len(clothes)):
clothes.iloc[row_loc,12] = len(clothes.iloc[row_loc,1])
clothes.sort_values(by='LEN', inplace=True)
time1_2 = datetime.datetime.now()
time = {'time1':time1_2 - time1_1}
'''法二 使用apply'''
def assign_to_len(row):
row['LEN1'] = len(row['网点名称'])
return row
time2_1 = datetime.datetime.now()
clothes = clothes.apply(assign_to_len,axis=1)
clothes.sort_values(by='LEN', inplace=True)
time2_2 = datetime.datetime.now()
法一法二耗时比较:
In [4]: time
Out[4]:
{'time1': datetime.timedelta(0, 0, 45003),
'time2': datetime.timedelta(0, 0, 75004)}
当法一将iloc换为iat后耗时比较:
In [7]: time
Out[7]:
{'time1': datetime.timedelta(0, 0, 4000),
'time2': datetime.timedelta(0, 0, 75005)}