Как я могу сохранить эти результаты цикла пока в несколько фреймов данных в Python? - PullRequest
0 голосов
/ 05 ноября 2019

Это мой пример кода:

from window_slider import Slider
import numpy
list = numpy.array([0, 1, 2, 3, 4, 5, 6, 7 ,8])
bucket_size = 3
overlap_count = 0
slider = Slider(bucket_size,overlap_count)
slider.fit(list)       
while True:
    window_data = slider.slide()
    print(window_data)
    if slider.reached_end_of_list(): break

Это показывает мне вывод:

[0 1 2]
[3 4 5]
[6 7 8]

Если я попытался сохранить его в кадре данных, он сохраняет только последние значениямассив numpy это [6, 7 и 8]. Я хочу сохранить их все в разных фреймах данных. Может кто-нибудь помочь мне с этим?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

Вы можете использовать списки, чтобы сохранить его в списке списков:

from window_slider import Slider
import numpy
import pandas as pd
list = numpy.array([0, 1, 2, 3, 4, 5, 6, 7 ,8])
bucket_size = 3
overlap_count = 0
slider = Slider(bucket_size,overlap_count)
slider.fit(list) 

#Master list which consists of all the lists of arrays
output_list = []      
while True:
    window_data = slider.slide()
    #Convert the window_data array to a list
    output_df_list = window_data.tolist()
    #Append the "output_df_list" to the master list "output_list"
    output_list.append(output_df_list)
    print(window_data)
    if slider.reached_end_of_list(): break

Вывод:

print(output_list)
[[0, 1, 2], [3, 4, 5], [6, 7, 8]]
0 голосов
/ 05 ноября 2019

Попробуйте использовать словарь:

d = {}
c = 0
while True:
    c += 1
    window_data = slider.slide()
    d['df%s'%c] = window_data
    if slider.reached_end_of_list(): break

В конце концов, просто используйте d['df1'] и d['df2'] и т. Д. Для доступа, если вы хотите, чтобы к ним обращались напрямую, например df1 иdf2, добавьте следующую строку в конец кода:

locals().update(d)

Тогда df1 и df2 будут работать.

...