我一直在这里和谷歌搜索,并找到了许多示例,这些示例显示了如何根据非移动日期变量删除旧日期,但无法弄清楚如何根据今天的日期删除数据行。在下面的示例中,我将如何删除比今天日期更早的任何内容(应该删除一个值)然后保存它?真正的源文件每天都会继续获取新数据,我需要删除早于“今天”日期的所有内容。
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'])
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
最佳答案
Pandas 不遗余力地让开发人员的生活更轻松。与 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
这将删除第 0th 行。
关于python - 删除日期早于 "today"的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50380295/