如何在python中将来自两个不同字典的数据帧连接成一个新的数据帧?

时间:2019-11-06 08:46:08

标签: python-3.x pandas numpy dataframe while-loop

这是我的示例代码

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 ”。我想为它们中的每一个创建一个新的数据框,以便将 empty_dictionary_consistency 中的df1与 empty_dictionary 中的df1连接。因此,它将从连接中的df1开始。 > empty_dictionary_consistency 和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 :(得分:0)

我现在不在电脑旁,因此无法测试代码,但看来问题出在索引上。在最后一个循环中,在每次迭代中都递增一个名为“ 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对象,就必须在第一个字典结束时将其停止。