WHCSRL 技术网

pandas dataFrame之基于numpy加速

当dataFrame太大时,pandas索引(如 df[df['age'] == 30)的速度较慢。可以用向量化方法进行加速。

一个例子如下:

  1. imei_list = list(set(data_df['imei']))
  2. tt = data_df.values
  3. imei_res = dict()
  4. imei_col_data = tt[:,0]
  5. lng_col_data = tt[:,1]
  6. lat_col_data = tt[:,2]
  7. tmstp_col_data = tt[:,3]
  8. sel_imei = imei_list[i]
  9. index = np.where(imei_col_data == sel_imei)
  10. lng_list = lng_col_data[index]
  11. lat_list = lat_col_data[index]
  12. tmstp_list = tmstp_col_data[index]

其中data_df的四列分别为imei,经度,纬度,时间戳。这个例子的作用相当于

  1. sel_data = data_df[data_df['imei'] == sel_imei]
  2. lng_list = list(sel_data['lng'])
  3. lat_list = list(sel_data['lat'])
  4. tmstp_list = list(sel_data['tmstp'])

推荐阅读