2014-11-22 128 views
3

使用熊貓0.15.1。假設我有以下兩個數據幀:在Pandas中合併/組合兩個具有不同頻率時間序列索引的數據幀?

daily 
2014-11-20 00:00:00 Rain 
2014-11-21 00:00:00 Cloudy 
2014-11-22 00:00:00 Sunny 

minutely 
2014-11-20 12:45:00  51 
2014-11-20 12:46:00  43 
2014-11-20 12:47:00  44 
... 
2014-11-21 12:45:00  44 
2014-11-21 12:46:00  46 
2014-11-21 12:47:00  48 
... 
2014-11-22 12:45:00  38 
2014-11-22 12:46:00  32 
2014-11-22 12:47:00  37 

我想結合這兩個數據幀,以便日值傳播到具有相應日期的每個分鐘行。

而且由於分鐘行在00:00:00實際上並沒有數據,所以我不希望這個時間包含在結果數據框中。所需輸出:

2014-11-20 12:45:00  51 Rain 
2014-11-20 12:46:00  43 Rain 
2014-11-20 12:47:00  44 Rain 
... 
2014-11-21 12:45:00  44 Cloudy 
2014-11-21 12:46:00  46 Cloudy 
2014-11-21 12:47:00  48 Cloudy 
... 
2014-11-22 12:45:00  38 Sunny 
2014-11-22 12:46:00  32 Sunny 
2014-11-22 12:47:00  37 Sunny 

我該如何做到這一點?我需要使用合併,連接還是連接?

回答

3

開始:

>>> left 
        minutely 
2014-11-20 12:45:00  51 
2014-11-20 12:46:00  43 
2014-11-20 12:47:00  44 
2014-11-21 12:45:00  44 
2014-11-21 12:46:00  46 
2014-11-21 12:47:00  48 
2014-11-22 12:45:00  38 
2014-11-22 12:46:00  32 
2014-11-22 12:47:00  37 
>>> right 
      daily 
2014-11-20 Rain 
2014-11-21 Cloudy 
2014-11-22 Sunny 

你可以這樣做:

>>> left['day'] = left.index.date 
>>> right.index = right.index.date 
>>> left.join(right, on='day', how='left') 
        minutely   day daily 
2014-11-20 12:45:00  51 2014-11-20 Rain 
2014-11-20 12:46:00  43 2014-11-20 Rain 
2014-11-20 12:47:00  44 2014-11-20 Rain 
2014-11-21 12:45:00  44 2014-11-21 Cloudy 
2014-11-21 12:46:00  46 2014-11-21 Cloudy 
2014-11-21 12:47:00  48 2014-11-21 Cloudy 
2014-11-22 12:45:00  38 2014-11-22 Sunny 
2014-11-22 12:46:00  32 2014-11-22 Sunny 
2014-11-22 12:47:00  37 2014-11-22 Sunny 
相關問題