Ответ 1
A (слегка наивный) способ состоял бы в том, чтобы сохранить структуру вашего фрейма данных, то есть его столбцы и индекс, отдельно, а затем создать новый кадр данных из ваших предварительно обработанных результатов следующим образом:
In [15]: data = np.zeros((2,2))
In [16]: data
Out[16]:
array([[ 0., 0.],
[ 0., 0.]])
In [17]: from pandas import DataFrame
In [21]: df = DataFrame(data, index = ['first', 'second'], columns=['c1','c2'])
In [22]: df
Out[22]:
c1 c2
first 0 0
second 0 0
In [26]: i = df.index
In [27]: c = df.columns
# generate new data as a numpy array
In [29]: df = DataFrame(np.random.rand(2,2), index=i, columns=c)
In [30]: df
Out[30]:
c1 c2
first 0.821354 0.936703
second 0.138376 0.482180
Как вы можете видеть в Out[22]
, мы начинаем с кадра данных, а затем в In[29]
помещаем некоторые новые данные внутри фрейма, оставляя строки и столбцы неизменными. Я предполагаю, что ваша предварительная обработка будет not
перемешать строки/столбцы данных.