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

标签 python pandas merge

假设我有以下数据框;一个以 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

关于python - 将数据框与分钟和日期索引相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49182288/

相关文章:

python - Pandas 计算两列的单一均值、标准差和计数

php - 用 PHP 合并两个图像

python - 如何使用node_def复制Tensorflow中的图操作?

python - 如何通过拆分 python 中的列表元素来创建列表?

python - 将每个唯一 ID 的行转换为所有逗号分隔的可能性

r - 合并/合并具有相同名称但数据不完整的列

php - 向多维数组添加数据

python - 值错误: The columns in the computed data do not match the columns in the provided metadata

python - 列表中的排序列表

python - Pandas 'eval' 与 NaN