Skip to main content
 首页 » 编程设计

python之将数据框与分钟和日期索引相结合

2025年05月04日22zlslch

假设我有以下数据框;一个以 1 分钟为间隔的数据,另一个以每天的数据间隔为间隔。

>>> df_1 = pd.DataFrame({'A':[1,2,3], 
                 'B':[4,5,6], 
                 'C':[7,8,9]},  
                 index=pd.to_datetime(['2017-01-01 00:01:00', '2017-01-01 00:02:00', '2017-01-02 00:01:00'])) 
 
>>> df_1 
                     A  B  C 
2017-01-01 00:01:00  1  4  7 
2017-01-01 00:02:00  2  5  8 
2017-01-02 00:01:00  3  6  9 
 
>>> df_2 = pd.DataFrame({'D':['ON','OFF']},  
                 index=pd.to_datetime(['2017-01-01', '2017-01-02'])) 
>>> df_2 
              D 
2017-01-01   ON 
2017-01-02  OFF 

我想合并它们,以便仅在日期之前将 df_2 中的数据拉入 df_1,如下所示。

>>> df_merge = pd.merge(df_1, df_2) 
>>> df_merge 
 
                     A  B  C    D 
2017-01-01 00:01:00  1  4  7   ON 
2017-01-01 00:02:00  2  5  8   ON 
2017-01-02 00:01:00  3  6  9  OFF 

有什么方法可以仅基于日期合并,将每日数据拉入分钟数据吗?

请您参考如下方法:

使用重新索引

df_1['D']=df_2.reindex(df_1.index,method='nearest') 
df_1 
Out[184]:  
                     A  B  C    D 
2017-01-01 00:01:00  1  4  7   ON 
2017-01-01 00:02:00  2  5  8   ON 
2017-01-02 00:01:00  3  6  9  OFF