быстрое нарезание данных панды - PullRequest
0 голосов
/ 15 октября 2019

Я страдаю от медленной скорости бега. мои данные

 <class 'pandas.io.pytables.HDFStore'>
 File path: c:/data/bed_1/acc_ohlc.hdf
 /000020            frame        (shape->[7721,5])
 /000030            frame        (shape->[1037,5])
 /000040            frame        (shape->[7723,5])
 /000050            frame        (shape->[7723,5])
 /000060            frame        (shape->[7723,5])
 /000070            frame        (shape->[7724,5])
 /000080            frame        (shape->[2426,5])

каждый является фреймом данных панд, и каждая длина данных различна. индекс является меткой времени. для создания нового набора данных, который имеет все те же данные периода.

  begin = '20140117'
  end = '20150116'   
  p_data = {}
  for index, row in code_list.iterrows():
      code = row['Code'][:-3]
      p_data[code] = store[code].ix[begin:end].astype (float)
  new_data = pd.Panel(p_data)

new_data = pd.Panel (p_data)

Общее время выполнения составляет около 25 секунд. Есть ли хороший код для сокращения времени работы?

1 Ответ

0 голосов
/ 15 октября 2019

Нечто подобное может значительно ускорить процесс. .iterrows не может быть лучшим вариантом там.

def fun(c):
   code = c[:-3]
   p_data[code] = store[code].ix[begin:end].astype (float)

code_list.Code.apply(fun)
...