熊猫在过滤日期数据

时间:2020-03-17 15:33:41

标签: python-3.x pandas csv dataframe datetime

请参阅帖子末尾的“编辑”,我已经解决了原始问题,但此后更改了该问题。

我正在写信,看看是否有可能对我用来在csv文件中对日期进行排序的某些代码上提供帮助,以便删除5天之前的所有内容。

这是代码部分,用于控制日期减去timedelta(days = 5)的设置,然后将其与当前日期进行比较,从而得出2020-03-12至2020-03-17范围以及所有内容适合的被保留。 (此示例基于使用5天,因此可以返回更远或更短的时间)

df2 = pd.read_csv('example.csv')
df2 = df2.drop(['Unnamed: 0'], axis=1)
df2['comment.createTime'] = pd.to_datetime(df2['comment.createTime'])
df2 = df2.set_index([comment.createTime'])
end_range = datetime.now().date()
d = d = datetime.today() - timedelta(days=5)
start_range = d.date()
df3 = df2[end_range:start_range]

我的问题是,当天或什至一天前留下的所有评论也都被过滤掉了,没有出现在下一段中,这导致其余代码无法正常工作。

从example.csv中提取日期的示例

John Doe,FIVE,Amazing Experience!,2020-03-17T14:50:05.197Z

由于该示例是今天的日期,因此将被删除而不保留​​并转发给脚本的下一部分。

Jane Doe,ONE,Horrible,2020-03-10T23:55:26.452Z

在此示例中,如果将timedelta(days = 5)设置为days = 10,那么将再次使用John Doe。

我想我可以等待一天左右,然后运行它,看看它是否能够接收到评论,然后以这种方式使用它,但是我希望能够不过滤当前日期的评论,因此我可以运行脚本说,它每小时都会响应上一次运行的前一小时的所有内容。在下午2点运行它,并在下午1点到下午2点之间运行,在下午3点运行,然后在下午2点到3点之间运行,依此类推。

对我尝试过但没有奏效的尝试表示荣誉。

df2 = pd.read_csv('example.csv')
df2['comment.createTime'] = pd.to_datetime(df2['comment.createTime'])
df2 = df2.set_index([comment.createTime'])
end_range = datetime.now().date()
d = d = datetime.today() - timedelta(days=5)
start_range = d.date()
df3 = df2[end_range:start_range]
df2 = pd.read_csv('example.csv')
df2 = df2.drop(['Unnamed: 0'], axis=1)
df2['comment.createTime'] = pd.to_datetime(df2['review.createTime'])
df2 = df2.set_index([comment.createTime'])
end_range = datetime.now().date()
d = d = datetime.today() - timedelta(days=-1)
start_range = d.date()
df3 = df2[end_range:start_range]
df2 = pd.read_csv('example.csv')
df2 = df2.drop(['Unnamed: 0'], axis=1)
df2['comment.createTime'] = pd.to_datetime(df2[comment.createTime'])
df2 = df2.set_index([comment.createTime'])
df3 = df2['2020-03-17':'2020-03-12']

我想在这里添加编辑。

df2 = pd.read_csv('gmb_batchreviews.csv')
df2 = df2.drop(['Unnamed: 0'], axis=1)
df2['review.createTime'] = pd.to_datetime(df2['review.createTime'])
df2 = df2.set_index(['review.createTime'])
end_range = datetime.now().date() + pd.DateOffset(days=1)
d = d = datetime.today() - timedelta(days=0)
start_range = d.date()
df3 = df2[end_range:start_range]

上面的代码可以实现我想要的功能,只需向前约会end_range即可将所有内容从“今天”中提取出来。我的问题现在稍微转变为如何更改时间而不是天的时间?

0 个答案:

没有答案