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

如何在Pandas DataFrame中定位最后一个日期元素并重构数据?

解决方案:定位DataFrame中最后一个日期元素并重构数据

1. 构造示例数据

首先还原输入数据:

import pandas as pd

df = pd.DataFrame({
    'Empty header': [
        '2/01/2011',
        '3/01/2011',
        '4/01/2011',
        '5.222',
        '6.214',
        '1.34266'
    ]
})

2. 定位最后一个日期的位置

利用pd.to_datetime的errors='coerce'参数,将无法转换为日期的内容设为NaT,再通过last_valid_index()获取最后一个有效日期的索引:

# 转换列内容为日期格式,无效值设为NaT
date_series = pd.to_datetime(df['Empty header'], errors='coerce')
# 获取最后一个日期所在的行索引
last_date_idx = date_series.last_valid_index()

3. 重构数据并转换格式

提取日期段和对应数值段,配对后转换为目标格式:

# 提取日期和数值部分
dates = df.loc[:last_date_idx, 'Empty header']
values = df.loc[last_date_idx+1:, 'Empty header']

# 构建目标DataFrame,转换格式(注意日期是日/月/年,所以用dayfirst=True)
result_df = pd.DataFrame({
    'Date': pd.to_datetime(dates, dayfirst=True),
    'Value': values.astype(float)
})

最终结果

运行后得到的result_df即为期望格式:

print(result_df)
# 输出:
#         Date    Value
# 0 2011-01-02  5.22200
# 1 2011-01-03  6.21400
# 2 2011-01-04  1.34266

注意:如果你的日期格式是月/日/年,去掉pd.to_datetime中的dayfirst=True参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 12:25:41