我有两个数据帧,第一个数据名为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
我想念什么?
答案 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
中仅选择了Exact
和df1
,并将Date (LT)
中的列Date
重命名为df2
以复制您想要的输出