2017-06-12 6 views
0

で2つのパンダのデータフレームをマージ:私は現在、このようになります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 

を私は鍵があるようで、私の辞書に2つのデータフレームのシリーズをマージする方法を見つけたいです最初のシリーズのキーで、値はマージされたデータフレームです。私の結果の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

2つのフレームをマージして、辞書に上書きすることができます。

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} 
関連する問題