删除日期早于"今天"的行

mic*_*spe 2 python datetime dataframe pandas

我一直在这里搜索和谷歌,并找到了许多示例,显示如何根据非移动日期变量删除旧日期,但无法弄清楚如何根据今天的日期删除数据行.在下面的示例中,我将如何删除比今天更早的任何内容(应该删除一个值)然后保存它?真正的源文件将继续每天获取新数据,我将需要删除比"今天"更早的所有内容.

from datetime import datetime

import pandas as pd

data = {'date': ['2001-04-10 18:47:05.069722', '2018-05-16 18:47:05.119994', '2018-05-16 18:47:05.178768', '2018-05-16 18:47:05.230071', '2018-05-16 18:47:05.230071', '2018-05-16 18:47:05.280592', '2018-05-16 18:47:05.332662', '2018-05-16 18:47:05.385109', '2018-05-16 18:47:05.436523', '2018-05-16 18:47:05.486877'], 
        'battle_deaths': [34, 25, 26, 15, 15, 14, 26, 25, 62, 41]}

df = pd.DataFrame(data, columns = ['date', 'battle_deaths'])
Run Code Online (Sandbox Code Playgroud)

df
                         date  battle_deaths
0  2001-04-10 18:47:05.069722             34
1  2018-05-16 18:47:05.119994             25
2  2018-05-16 18:47:05.178768             26
3  2018-05-16 18:47:05.230071             15
4  2018-05-16 18:47:05.230071             15
5  2018-05-16 18:47:05.280592             14
6  2018-05-16 18:47:05.332662             26
7  2018-05-16 18:47:05.385109             25
8  2018-05-16 18:47:05.436523             62
9  2018-05-16 18:47:05.486877             41
Run Code Online (Sandbox Code Playgroud)

cs9*_*s95 5

熊猫不惜一切代价让开发人员的生活更轻松.相应地比较to_datetime('today')和过滤:

df[pd.to_datetime(df.date, errors='coerce') >= pd.to_datetime('today')]

                         date  battle_deaths
1  2018-05-16 18:47:05.119994             25
2  2018-05-16 18:47:05.178768             26
3  2018-05-16 18:47:05.230071             15
4  2018-05-16 18:47:05.230071             15
5  2018-05-16 18:47:05.280592             14
6  2018-05-16 18:47:05.332662             26
7  2018-05-16 18:47:05.385109             25
8  2018-05-16 18:47:05.436523             62
9  2018-05-16 18:47:05.486877             41
Run Code Online (Sandbox Code Playgroud)

这消除了0 行.