Он работает точно так же, как и предполагалось, вплоть до строки печати, поскольку он печатает 1 столбец данных со всеми результатами с точным количеством строк. Это последняя строчка, которая, кажется, пошлая. Помещение списка df в dictionary_set [ключ] под заголовком FFT изменяет все результаты на NaN в выводе словаря [ключ].
#takes in a dictionary where each key has a dataframe (5000 rows x 9 cols) as a value
def feature_extraction(dictionary_set):
for key, val in dictionary_set.items():
if "eat" in key:
temp_df = dictionary_set[key].drop(['Eat'], axis=1) #assign each df to temp df
temp_df = temp_df.reset_index(drop=True)
FFT_list = []
for i in temp_df.index: # iterate through temp df rows
x = temp_df.iloc[i].values
y = fft(x) # do fft of 8 cols and generates a list with 8 items
FFT_list.append(y[0]) # only need first value and append to list
print(pd.DataFrame(FFT_list)) # this outputs exactly what I expect
dictionary_set[key].loc[:,'FFT'] = pd.DataFrame(FFT_list)
# The last line is where things get screwy and all the fft numbers turn to Nan