【发布时间】:2018-08-10 10:48:01
【问题描述】:
我有一个带有日期时间 (df1) 的数据框。我想知道 df1 中“col1”中的日期时间是否介于另一个数据帧 (df2) 中两列(“下界”和“上界”)的任何一对日期时间之间。
例如:
df1 = pd.to_datetime(['2014-04-09 07:37:00','2015-04-09 07:00:00',
'2014-02-02 08:31:00','2014-03-02 08:22:00'])
df1 = pd.DataFrame(df1,columns = ['col1'])
lowerbound = pd.to_datetime(['2014-04-09 07:25:00','2014-02-02 08:30:00',
'2015-04-09 06:00:00','2014-03-02 08:12:00'])
upperbound = pd.to_datetime(['2014-04-09 07:38:00','2014-04-09 07:48:00',
'2015-04-09 08:00:00','2014-02-02 08:33:00')
df2 = pd.DataFrame(lowerbound,columns = ['lowerbound'])
df2['upperbound'] = upperbound
结果应为 [1,1,0,0],因为:
- df1['col1'][0] 介于 df2['lowerbound'][0] 和 df2['lowerbound'][0]
- df1['col1'][1] 介于 df2['lowerbound'][2] & df2['lowerbound'][2]
- 虽然 df1['col1'][2] 介于 df2['lowerbound'][1] & df2['lowerbound'][3] 之间,但 df2['lowerbound'] 和 df2['lowerbound' 的索引] 不一样。
谢谢!
【问题讨论】:
-
似乎结果应该是
[1,1,1,1]? -
@RafaelC 不是真的。例如,对于 df1['col1'][3]:'2014-03-02 08:22:00',它不在任何一对 df2['lowerbound'][x] 和 df2['lowerbound'] 之间[x] 表示 x 在 0-3 范围内。
-
但那是因为您的 upperbound 值小于 lowerbound 值,这是没有意义的。
-
确实,上限值小于下限值是没有意义的。这只是一个例子。
标签: python pandas datetime dataframe