我有一些稀疏的高頻數據(不均勻間隔)和一些低頻數據(每日)。
如何加入此數據並在相應的低頻數據列中附加相應的低頻數據列,如果該數據列在當天?加入具有不同日期時間頻率的數據幀
一種方法是創建一個自定義應用函數並檢查每個數據的YMD並查找相應的低頻數據,但這樣做效率很低。
下面是一個例子數據框這表明了問題:
df1 = DataFrame(dict(date1 = date_range(start='20100101', periods=48, freq='H'),value1=range(48)))
df2 = DataFrame(dict(date2 = date_range(start='20100101', periods=2, freq='D'),value2=range(2)))
我試過pd.merge和和pd.join,但它們不匹配而產生的NaN。
merge(df1,df2,left_on='date1',right_on='date2',how='outer')
date1 value1 date2 value2
0 2010-01-01 00:00:00 0 2010-01-01 0
1 2010-01-01 01:00:00 1 NaT NaN
2 2010-01-01 02:00:00 2 NaT NaN
3 2010-01-01 03:00:00 3 NaT NaN
...
1 2010-01-01 01:00:00 1 2010-01-02 1
24 2010-01-02 00:00:00 24 NaT NaN
25 2010-01-02 01:00:00 25 NaT NaN
...
30 2010-01-02 06:00:00 30 NaT NaN
31 2010-01-02 07:00:00 31 NaT NaN
我希望的應有值2輸出的一切一號和1一切二號0:
date1 value1 date2 value2
0 2010-01-01 00:00:00 0 2010-01-01 0
1 2010-01-01 01:00:00 1 2010-01-01 0
2 2010-01-01 02:00:00 2 2010-01-01 0
3 2010-01-01 03:00:00 3 2010-01-01 0
...
29 2010-01-02 05:00:00 29 2010-01-02 1
30 2010-01-02 06:00:00 30 2010-01-02 1
31 2010-01-02 07:00:00 31 2010-01-02 1
Perh aps你正在尋找resample? – 2014-10-02 22:52:59
如果您給出兩個示例(小)數據框(如每行數據)以及所需的輸出,它會有所幫助。目前這個問題太模糊了。 – 2014-10-02 23:27:18
@AndyHayden,對不起,添加了一個例子 – eengineer 2014-10-02 23:53:53