Python 从另一个数据框中删除基于年-月-日的datetime索引数据框行

Python 从另一个数据框中删除基于年-月-日的datetime索引数据框行,python,python-3.x,pandas,dataframe,datetime,Python,Python 3.x,Pandas,Dataframe,Datetime,我有一个数据帧,如下所示: A 2014-06-02 09:00:00 ... 2014-06-02 10:00:00 ... 2014-06-02 11:00:00 ... 2014-06-02 12:00:00 ... 2014-06-03 09:00:00 ... 2014-06-03 10:00:00 ... 2014-06-04 11:00:00 ... 2014-06-04 12:00:00

我有一个数据帧,如下所示:

                       A     
2014-06-02 09:00:00   ...
2014-06-02 10:00:00   ...
2014-06-02 11:00:00   ...
2014-06-02 12:00:00   ...

2014-06-03 09:00:00   ...
2014-06-03 10:00:00   ...

2014-06-04 11:00:00   ...
2014-06-04 12:00:00   ...

2014-06-05 11:00:00   ...
2014-06-05 12:00:00   ...
还有一个像下面这样的

                       A
2014-06-03 13:14:00   ...
2014-06-04 16:33:00   ...
我需要一个数据帧,如下所示:

                       A
2014-06-02 09:00:00   ...
2014-06-02 10:00:00   ...
2014-06-02 11:00:00   ...
2014-06-02 12:00:00   ...
2014-06-05 11:00:00   ...
2014-06-05 12:00:00   ...

也就是说:在第二个数据框中,每行从第一个数据框中删除一个年-月-日

您可以使用
楼层
,和
~
(反转符号),并检查dfb
的索引是否在
dfa中:

dfa[~dfa.index.floor('D').isin(dfb.index.floor('D'))]

注意这两个索引都需要是日期时间数据类型。

您可以使用
楼层
,和
~
(反转符号),并检查dfb
的索引是否在dfa中:

dfa[~dfa.index.floor('D').isin(dfb.index.floor('D'))]

注意,两个索引都需要是日期时间数据类型。

我提出的解决方案与您的几乎相同:)+1为了澄清,
dfa[~dfa.index.isin(dfb.index)]
足以删除与第二个数据框数据完全相同的每一行,
floor('D')
获取日期时间对象并“向下舍入”到一天值,因此,具有相同“年-月-日”的不同datetime条目将匹配。如果您的索引不是日期时间类型,则可以使用
dfa.set_index=pd.to_datetime(dfa.index)
将它们转换为日期时间(dfa.index)`反转符号的含义是什么?~表示“不”或将“真”反转为“假”或“假”反转为“真”。我提出了与您几乎相同的解决方案:)+1为了澄清,
dfa[~dfa.index.isin(dfb.index)]
足以删除与第二个数据帧具有完全相同数据的每一行,
floor('D')
获取datetime对象并将其“向下舍入”为一个day值,以便不同的datetime条目具有相同的数据“年-月-日”将匹配。如果您的索引不是日期时间类型,则只需使用
dfa将它们转换。将_index=pd.设置为_datetime(dfa.index)
`反转符号的含义是什么?~表示否或将True转换为False或将False转换为True。