【发布时间】:2020-05-21 21:10:43
【问题描述】:
所以我有两个不同长度的不同数据框和一个公共列:date,我想对其进行布尔索引,以便它匹配从df2到df1的日期在它们相同的行上.第一个数据框df1 有每日日期,而df2 有日期之间的间隔。
DF1:
date usd_am usd_pm usd_avg
13235 2020-05-14 1716.40 1731.60 1724.000
13236 2020-05-15 1734.85 1735.35 1735.100
13237 2020-05-18 1756.90 1734.70 1745.800
13238 2020-05-19 1735.25 1737.95 1736.600
13239 2020-05-20 1750.05 1748.30 1749.175
(13240, 4)
DF2:
day date time
1863 Thursday 2050-09-01 10:30:54 am
1864 Friday 2050-09-30 06:31:48 pm
1865 Sunday 2050-10-30 04:16:00 am
1866 Monday 2050-11-28 04:09:48 pm
1867 Wednesday 2050-12-28 06:15:36 am
(1868, 3)
两个日期列的格式都已统一,并存储为字符串。
我试过这个:
df1['match'] = df1[df1['date'] == df2['date']]
但我得到了这个错误:
ValueError: Can only compare identically-labeled Series objects
预期的输出应该是:
DF1:
date usd_am usd_pm usd_avg match
13235 2020-05-14 1716.40 1731.60 1724.000 False
13236 2020-05-15 1734.85 1735.35 1735.100 True
13237 2020-05-18 1756.90 1734.70 1745.800 True
13238 2020-05-19 1735.25 1737.95 1736.600 True
13239 2020-05-20 1750.05 1748.30 1749.175 False
如果匹配值为 True,则日期也存在于 df2 中。
【问题讨论】:
-
你能提供预期的输出吗?
-
当然,它已经更新了。 @FrancisWebb
标签: python python-3.x pandas dataframe