Pandas 数据框:仅根据实际日期和最多 7 天保留行

我有一个包含文章的数据框,这是第一篇文章:


0   La reprise de l’économie française s’étiole et...   Sur le Vieux-Port, à Marseille, le 28 septembr...   2020-10-06

1   Aux Etats-Unis, un rapport parlementaire veut ...   Les icones des services de Google, Amazon, Fac...   2020-10-07

2   Les beaux jours de la médiation en entreprise   Carnet de bureau. Des entreprises appellent de...   2020-10-07

3   Plan de relance : comment « déterminer mainten...   Tribune. Parmi les multiples critiques entendu...   2020-10-07

4   Des lauréats du Nobel qui ne le méritaient pas  Chaque automne, depuis plus d’un siècle, le pe...   2015-10-07

我只想保留距实际日期最多 7 天的文章。像这样的:实际日期 <= 文章 <= 7 天前的最大值


我已经编写了这个代码来抓取文章:


 %%time


lemonde_title = []

lemonde_content = []

published_date =[]


from newspaper import Article

from newspaper import ArticleException

from datetime import datetime


for art_link in all_urls:

    try:

        art = Article(art_link)

        art.download()

        art.parse()

        

        lemonde_title.append(art.title)

        lemonde_content.append(art.text)

        

        try:

            publish_date = datetime.strptime(str(art.publish_date), '%Y-%m-%d %H:%M:%S').strftime('%Y-%M-%D')

            published_date.append(publish_date)

        except:

            published_date.append('unconverted')

        

    except ArticleException:

        pass

我像这样转换了日期列:


# converting the string to datetime format 

df['date'] = pd.to_datetime(df['date'], format='%Y-%M-%D') 

当我尝试以下代码时,出现错误TypeError: Invalid comparison between dtype=datetime64[ns] and date:


import datetime

date_before = datetime.date.today() - datetime.timedelta(days=7)

df = df[df['date'] >date_before]


桃花长相依
浏览 102回答 3
3回答

德玛西亚99

df = pd.DataFrame({&nbsp; &nbsp; 'text': ["t1", "t2", "t3"],&nbsp; &nbsp; 'date' : ['2020-10-06', '2020-10-05', '2012-10-06']})df['date'] = pd.to_datetime(df['date'])till = pd.to_datetime(datetime.date.today() - datetime.timedelta(days=7))df = df[df['date'] >= till]输出:&nbsp; &nbsp; text&nbsp; &nbsp; date0&nbsp; &nbsp;t1&nbsp; 2020-10-061&nbsp; &nbsp;t2&nbsp; 2020-10-05

繁华开满天机

用这个这个有效&nbsp; &nbsp; import datetime&nbsp; &nbsp; date_before = datetime.date.today() - datetime.timedelta(days=7)&nbsp;&nbsp; &nbsp; df = df[df['date'] >date_before]您可以按照您想要的方式编辑之前的日期。

慕桂英3389331

将日期时间导入为 dt df[(dt.datetime.today()-df.date).apply(lambda x: 0<= x.days <7) ]这应该可以解决问题!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python