这个问题在概念上与这个问题相似。
我有两个数据框。一个有一组对应于特定时间和日期的值 ( df_1
)。另一个有一组对应于某些月份的值 ( df_2
),指定为一个月第一天的第一时刻(例如 2015-07-01 00:00:00.00)。我想合并这些 DataFrame,以便将df_2
月份的值应用于df_1
相应月份的所有日期和时间。
所以,这里是df_1
:
|DatetimeIndex|value_1|
|-------------|-------|
|2015-07-18 |10 |
|2015-07-18 |11 |
|2015-07-19 |12 |
|2015-07-20 |13 |
|2015-07-20 |14 |
|2015-07-20 |15 |
|2015-07-21 |16 |
|2015-07-22 |17 |
|2015-07-22 |18 |
|2015-07-23 |19 |
|2015-08-11 |20 |
这是df_2
:
|DatetimeIndex|value_2|
|-------------|-------|
|2015-07-01 |100 |
|2015-08-01 |200 |
我想像这样合并它们:
|DatetimeIndex|value_1|value_2|
|-------------|-------|-------|
|2015-07-18 |10 |100 |
|2015-07-18 |11 |100 |
|2015-07-19 |12 |100 |
|2015-07-20 |13 |100 |
|2015-07-20 |14 |100 |
|2015-07-20 |15 |100 |
|2015-07-21 |16 |100 |
|2015-07-22 |17 |100 |
|2015-07-22 |18 |100 |
|2015-07-23 |19 |100 |
|2015-08-11 |20 |200 |
因此,value_2
每个月都存在。
如何进行这种合并?
从之前的答案来看,以下(有缺陷的)形式的解决方案似乎是正确的方法,但它失败了:
idx = df_1.index.union(df_2.index)
#df_1.join(df_2.loc[idx.date].set_index(idx), how = "outer")
df_1.join(df_2.loc[idx.month].set_index(idx), how = "outer")