Как объединить фреймы данных из двух разных словарей в новый фрейм данных в python? - PullRequest
1 голос
/ 06 ноября 2019

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

dataset_current=dataset_seq['Motor_Current_Average']
dataset_consistency=dataset_seq['Consistency_Average']

#technique with non-overlapping the values(for current)
dataset_slide=dataset_current.tolist()
from window_slider import Slider
import numpy
list = numpy.array(dataset_slide)
bucket_size = 336
overlap_count = 0
slider = Slider(bucket_size,overlap_count)
slider.fit(list)      
empty_dictionary = {}
count = 0
while True:
  count += 1
  window_data = slider.slide()
  empty_dictionary['df_current%s'%count] = window_data
  empty_dictionary['df_current%s'%count] =pd.DataFrame(empty_dictionary['df_current%s'%count])
  empty_dictionary['df_current%s'%count]= empty_dictionary['df_current%s'%count].rename(columns={0: 'Motor_Current_Average'})
  if slider.reached_end_of_list(): break
  locals().update(empty_dictionary)


#technique with non-overlapping the values(for consistency)
dataset_slide_consistency=dataset_consistency.tolist()
list = numpy.array(dataset_slide_consistency)
slider_consistency = Slider(bucket_size,overlap_count)
slider_consistency.fit(list)      
empty_dictionary_consistency = {}
count_consistency = 0
while True:
  count_consistency += 1
  window_data_consistency = slider_consistency.slide()
  empty_dictionary_consistency['df_consistency%s'%count_consistency] = window_data_consistency
  empty_dictionary_consistency['df_consistency%s'%count_consistency] =pd.DataFrame(empty_dictionary_consistency['df_consistency%s'%count_consistency])
  empty_dictionary_consistency['df_consistency%s'%count_consistency]= empty_dictionary_consistency['df_consistency%s'%count_consistency].rename(columns={0: 'Consistency_Average'})
  if slider_consistency.reached_end_of_list(): break
  locals().update(empty_dictionary_consistency)
import pandas as pd
output_current ={}
increment = 0
while True:
   increment +=1
   output_current['dataframe%s'%increment] = pd.concat([empty_dictionary_consistency['df_consistency%s'%count_consistency],empty_dictionary['df_current%s'%count]],axis=1)

Мой вопрос: у меня есть два словаря, в каждом из которых содержится 79 фреймов данных, а именно: " empty_dictionary_consistency " и " empty_dictionary ". Я хочу создать новый фрейм данных для каждого из них так, чтобы он объединял df1 из empty_dictionary_consistency с df1 из empty_dictionary . с df1 из empty_dictionary до df79 из empty_dictionary_consistency с df79 из empty_dictionary . Я попытался использовать цикл while для увеличения, но не показывает никакого вывода.

output_current ={}
increment = 0
while True:
   increment +=1
   output_current['dataframe%s'%increment] = pd.concat([empty_dictionary_consistency['df_consistency%s'%count_consistency],empty_dictionary['df_current%s'%count]],axis=1) 

Может кто-нибудь помочь мне в этом? Как я могу это сделать.

1 Ответ

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

Сейчас я не рядом с компьютером, поэтому не могу проверить код, но, похоже, проблема в индексах. В последнем цикле на каждой итерации вы увеличиваете переменную с именем 'increment', но вы по-прежнему используете индексы из предыдущих циклов для словарей, которые вы хотите объединить. Попробуйте изменить переменные, которые вы используете для индексации всех словарей, на «приращение». И еще одна вещь - я не вижу, когда этот цикл закончится?

UPD Я имею в виду это:

length = len(empty_dictionary_consistency)
increment = 0 
while increment < length: 
    increment +=1
    output_current['dataframe%s'%increment] = pd.concat([empty_dictionary_consistency['df_consistency%s'%increment],empty_dictionary['df_current%s'%increment]],axis=1) 

При переборе своих словарей вы должны использовать переменную, которую выприращение в качестве индекса во всех трех словарях. И как только вы не используете объект Slider в цикле, вы должны остановить его, когда закончится первый словарь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...