pandas dataFrame之基于numpy加速
当dataFrame太大时,pandas索引(如 df[df['age'] == 30)的速度较慢。可以用向量化方法进行加速。
一个例子如下:
- imei_list = list(set(data_df['imei']))
-
- tt = data_df.values
- imei_res = dict()
- imei_col_data = tt[:,0]
- lng_col_data = tt[:,1]
- lat_col_data = tt[:,2]
- tmstp_col_data = tt[:,3]
-
- sel_imei = imei_list[i]
- index = np.where(imei_col_data == sel_imei)
- lng_list = lng_col_data[index]
- lat_list = lat_col_data[index]
- tmstp_list = tmstp_col_data[index]
其中data_df的四列分别为imei,经度,纬度,时间戳。这个例子的作用相当于
- sel_data = data_df[data_df['imei'] == sel_imei]
- lng_list = list(sel_data['lng'])
- lat_list = list(sel_data['lat'])
- tmstp_list = list(sel_data['tmstp'])
推荐阅读