Как ускорить код с помощью concat из-за PerformanceWarning: DataFrame сильно фрагментирован. Обычно это результат вызова `frame.insert`

avatar
Wenhao Cui
9 августа 2021 в 03:48
234
0
0

Предупреждение: PerformanceWarning: DataFrame сильно фрагментирован. Обычно это результат многократного вызова frame.insert, который имеет плохую производительность. Вместо этого рассмотрите возможность использования pd.concat. Чтобы получить дефрагментированный кадр, используйте newframe = frame.copy()

Я не думаю, что в этой части у меня были объекты Series и DataFrame, которые могут использовать pd.concat Blow — это код, а t2.values[d] = self.not_selected_values[d] — источник предупреждения.

  Q = []
  for track in X:
      t2 = track.clone()
      t2.skeleton = self.orig_skeleton
      for d in self.not_selected:
          t2.values[d] = self.not_selected_values[d]
      Q.append(t2)
   for joint_name in selected_joints:
       selected_channels.extend([o for o in X[0].values.columns if (joint_name + "_") in o and 'Nub' not in o])
   self.not_selected = X[0].values.columns.difference(selected_channels)
   self.not_selected_values = {c:X[0].values[c].values[0] for c in self.not_selected}
Источник

Ответы (0)