You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas根据DataFrame最后一行的日期过滤时间数据?

过滤Pandas DataFrame,仅保留与最后一行日期相同的行

现有代码通过硬编码日期d筛选DataFrame,需要优化为自动获取最后一行的日期,保留所有与该日期相同的行。

原示例代码

import pandas as pd
import datetime

data = [
    "2014-03-15 12:00:00.000",
    "2014-03-15 12:10:00.000",
    "2014-03-18 13:00:00.000",
    "2014-03-18 13:10:00.000",
    "2014-03-18 14:10:00.000",
    "2014-03-18 15:20:00.000"
    ]
df = pd.DataFrame(data,columns=['ts'])
df['ts'] = pd.to_datetime(df['ts'],format='%Y-%m-%d %H:%M:%S.%f')
print(df)

d = datetime.datetime.strptime("2014-03-18 01:00:00.000", '%Y-%m-%d %H:%M:%S.%f')
df1 = df[df['ts'] > d]
print(df1)

优化方案

通过以下步骤实现自动筛选:

  • 获取DataFrame最后一行的日期部分(忽略时分秒)
  • 筛选出所有日期与该日期匹配的行

优化后的代码:

import pandas as pd

data = [
    "2014-03-15 12:00:00.000",
    "2014-03-15 12:10:00.000",
    "2014-03-18 13:00:00.000",
    "2014-03-18 13:10:00.000",
    "2014-03-18 14:10:00.000",
    "2014-03-18 15:20:00.000"
    ]
df = pd.DataFrame(data,columns=['ts'])
df['ts'] = pd.to_datetime(df['ts'],format='%Y-%m-%d %H:%M:%S.%f')

# 获取最后一行的日期(仅日期部分)
last_date = df['ts'].iloc[-1].date()
# 筛选所有日期匹配的行
df_filtered = df[df['ts'].dt.date == last_date]

print(df_filtered)

预期输出

ts
2 2014-03-18 13:00:00
3 2014-03-18 13:10:00
4 2014-03-18 14:10:00
5 2014-03-18 15:20:00

内容的提问来源于stack exchange,提问作者beetlej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 22:42:25