将两个pandas数据帧与字典合并

时间:2017-06-12 11:16:02

标签: python python-2.7

我有一个dict,目前看起来像这样:

raw_data = {'Series_Date':['2017-03-10','2017-03-11','2017-03-12','2017-03-13','2017-03-14','2017-03-15'],'Value':[1,1,1,1,1,1]}
import pandas as pd
df1= pd.DataFrame(raw_data,columns=['Series_Date','Value'])
raw_data_ = {'Series_Date':['2017-03-16','2017-03-17','2017-03-18','2017-03-19','2017-03-20','2017-03-21'],'Value':[1,1,1,1,1,1]}
df2= pd.DataFrame(raw_data_,columns=['Series_Date','Value'])
dict = {}
dict = {'Check':df1, 'Check2': df2}
print dict

我想找到一种方法来合并我的dict中的两个数据帧系列,方式是键是第一个系列的键,值是合并的数据帧。我的结果应该是这样的:

raw_data = {'Series_Date':['2017-03-10','2017-03-11','2017-03-12','2017-03-13','2017-03-14','2017-03-15','2017-03-16','2017-03-17','2017-03-18','2017-03-19','2017-03-20','2017-03-21'],'Value':[1,1,1,1,1,1,1,1,1,1,1,1]}
import pandas as pd
df= pd.DataFrame(raw_data,columns=['Series_Date','Value'])
dict = {}
dict = {'Check':df}
print dict

有没有简单的方法呢?

1 个答案:

答案 0 :(得分:0)

您可以合并这两个框架,并在您的字典上书写。

df_merged = pd.concat(dict.values()).sort_values(by='Series_Date').reset_index(drop=True)
dict = {dict.keys()[0] : df_merged}

然而,第一个'由于未订购密钥,因此信息会丢失在字典中。所以dict.keys()[0]不一定会给你第一个数据框的密钥。您可以使用OrderedDict来解决此问题。

然后会是这样的:

raw_data = {'Series_Date':['2017-03-10','2017-03-11','2017-03-12','2017-03-13','2017-03-14','2017-03-15'],'Value':[1,1,1,1,1,1]}
import pandas as pd
from collections import OrderedDict
df1= pd.DataFrame(raw_data,columns=['Series_Date','Value'])
raw_data_ = {'Series_Date':['2017-03-16','2017-03-17','2017-03-18','2017-03-19','2017-03-20','2017-03-21'],'Value':[1,1,1,1,1,1]}
df2= pd.DataFrame(raw_data_,columns=['Series_Date','Value'])
dict = OrderedDict([('Check', df1), ('Check2', df2)])

df_merged = pd.concat(dict.values()).sort_values(by='Series_Date').reset_index(drop=True)
dict = {dict.keys()[0] : df_merged}