2016-07-15 20 views
1

我有这个数据的熊猫数据帧:只选择行,其中一个日期是小于另一个与熊猫据帧

Id     Converteddate  Createddate 
0015000000toohpAAA 2015-07-24 00:00:00 2014-07-08 19:36:13 
0015000000tqEpKAAU 2015-03-17 00:00:00 2014-07-16 00:28:06 
00138000015me01AAA 2015-10-22 00:00:00 2015-10-22 22:04:55 
00138000015me56AAA 2015-10-22 00:00:00 2015-10-22 22:17:52 

我想只保留行,其中ConvertedDate < = CreatedDate + 3天,所以我将这两个字符串转换为datetime,然后使用timedelta来计算3天。我没有得到任何错误代码,但我的输出数据帧是保持不符合ConvertedDate我的标准< = CreatedDate +3天的记录。

netnewframe['CreatedDate'] = netnewframe.apply(lambda row: ToDateTimeObj(row['CreatedDate']), axis=1) 
netnewframe['ConvertedDate'] = netnewframe.apply(lambda row: ToDateTimeObj(row['ConvertedDate']), axis=1) 
netnewframe = netnewframe[(netnewframe.ConvertedDate <= (netnewframe.CreatedDate + timedelta(days=3)))] 

回答

1

您可以使用转换为datetime功能to_datetime然后用to_timedelta

netnewframe['CreatedDate'] = pd.to_datetime(netnewframe['CreatedDate']) 
netnewframe['ConvertedDate'] = pd.to_datetime(netnewframe['ConvertedDate']) 
netnewframe = netnewframe[netnewframe.ConvertedDate <= (netnewframe.CreatedDate + 
                 pd.to_timedelta(3, unit='d'))] 
print (netnewframe) 
        Id ConvertedDate   CreatedDate 
2 00138000015me01AAA 2015-10-22 2015-10-22 22:04:55 
3 00138000015me56AAA 2015-10-22 2015-10-22 22:17:52 
+0

它是如何工作的? – jezrael

+0

工作就像一个魅力,我感谢您的帮助!我以前没有遇到过to_timedelta。谢谢! –

相关问题