将基于共同索引的数据与日期结合起来

时间:2018-12-11 00:24:39

标签: python pandas

我有两个数据帧,第一个数据名为df1,数据为:

                 Date  Exact   Latitude  Longitude
0 1993-01-01 00:00:00    0.0  29.456137  85.506958
1 2017-10-01 05:00:00    0.0  27.694225  85.291702
2 2017-10-01 06:00:00    0.0  28.962729  80.912323
3 2017-10-02 05:00:00    0.0  27.699097  85.299431
4 2017-10-03 04:00:00    0.0  27.700438  85.329933

和df2为

               Date (LT)  Raw Conc.
6551 2017-10-01 00:00:00       10.0
6552 2017-10-01 01:00:00        7.0
6553 2017-10-01 02:00:00       11.0
6554 2017-10-01 03:00:00       11.0
6555 2017-10-01 04:00:00       12.0
6556 2017-10-01 05:00:00        9.0
6557 2017-10-01 06:00:00        7.0
6558 2017-10-01 07:00:00        7.0

我想基于列Date和Date(LT)列中的公共日期和时间合并两个数据框,以便最终输出类似于:

Date                  Exact            Raw Conc.
2017-10-02 05:00:00    0.0               9.0

我试图通过使用df1.set_index('Date')将两个数据框的日期作为索引来合并它。但是,当我尝试使用df1.index检查索引时,它并未被用作索引。我也尝试使用:

newfile=df1.loc[(df1.Date==df2.Date)]

它给了我错误:

ValueError: Can only compare identically-labeled Series objects

我想念什么?

1 个答案:

答案 0 :(得分:1)

您可以使用恰当命名的merge方法进行合并:

>>> df1[['Date','Exact']].merge(df2.rename(columns={'Date (LT)':'Date'}))
                  Date  Exact  Raw Conc.
0  2017-10-01 05:00:00    0.0        9.0
1  2017-10-01 06:00:00    0.0        7.0

我从您的Date中仅选择了Exactdf1,并将Date (LT)中的列Date重命名为df2以复制您想要的输出