2017-06-12 122 views
0

我有一個目前看起來像這樣的字典:合併兩個大熊貓dataframes與字典

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 

我想找到一種方法來合併在我的字典兩個數據框系列以這樣的方式,關鍵是第一個系列的關鍵和值是合併的數據幀。我的結果字典應該看起來像:

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 

有沒有簡單的方法來做到這一點?

回答

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} 
相關問題