首页 > 解决方案 > 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]

标签: pythonpandas

解决方案


df = pd.DataFrame({
    'text': ["t1", "t2", "t3"],
    '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]

输出:

    text    date
0   t1  2020-10-06
1   t2  2020-10-05

推荐阅读