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

使用Pandas获取DataFrame中各元素的最后编辑时间

嗨,我来分享下这个问题的解决办法,多亏了@jezrael的思路才顺利搞定!

问题说明

我们部门会定期给项目组合网站生成带随机时间的每日快照,这次拿project_id=1的数据做示例。核心需求有两个:

  • 针对每个project_id,找出各列单元格的最后编辑时间,整理成指定格式的df_table_new
  • 处理列中空值导致的NaT错误:把所有NaT替换成timestamp列的最早时间(这里是10/15/19)
解决代码&思路

用Pandas就能轻松实现,具体代码如下:

import pandas as pd

# 假设原始数据存储在df_table中
# 1. 按project_id分组,聚合各列的最后编辑时间(跳过空值)
df_table_new = df_table.groupby('project_id').agg(
    lambda col: col.dropna().iloc[-1] if not col.dropna().empty else pd.NaT
)

# 2. 获取timestamp列的最早时间,作为NaT的替换值
earliest_timestamp = df_table['timestamp'].min()

# 3. 替换所有NaT为指定的最早时间
df_table_new = df_table_new.fillna(earliest_timestamp)

步骤拆解

  • 分组聚合环节:用自定义lambda函数处理每一列——先剔除空值,如果列里还有有效数据,就取最后一条(对应最后编辑时间);如果全是空值,就返回NaT
  • 提前提取timestamp的最小时间,保证所有空值替换的基准一致
  • 最后用fillna批量替换NaT,彻底解决空值报错的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:12:55