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。