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

如何向带时间索引的Pandas DataFrame追加一行数据

向带Datetime索引的Pandas DataFrame追加行的可行方案

方法1:构造Series并合并(适配新版Pandas,推荐)

Pandas的append()方法已被弃用,更稳妥的方式是将新数据转换为带索引的Series,再通过pd.concat()合并:

import pandas as pd
from datetime import datetime as dtdt

# 处理新数据格式
new_date = dtdt.strptime(bb, '%Y-%m-%d %H:%M:%S')
# 分割数值字符串并转换对应类型
new_values = list(map(float, cc.split()))
new_values[0] = int(new_values[0])  # 匹配原DataFrame列4的整数类型

# 构造与原DataFrame列名一致的Series
new_row = pd.Series(new_values, index=df3.columns, name=new_date)

# 合并生成新DataFrame
new_df3 = pd.concat([df3, new_row.to_frame().T])

方法2:构造小型DataFrame合并

若习惯用DataFrame形式处理,可直接生成包含新行的小DataFrame再合并:

import pandas as pd
from datetime import datetime as dtdt

# 转换日期与数值格式
new_date = dtdt.strptime(bb, '%Y-%m-%d %H:%M:%S')
new_values = list(map(float, cc.split()))
new_values[0] = int(new_values[0])

# 构造小型DataFrame,匹配原DataFrame的索引与列名
new_sub_df = pd.DataFrame([new_values], index=[new_date], columns=df3.columns)

# 合并数据
new_df3 = pd.concat([df3, new_sub_df])

验证结果

执行后new_df3将得到期望输出:

4      5      6    7       8  9
Date                                                  
2009-07-01 03:00:00  101  13.03  89.33  0.6  287.69  0
2009-07-01 06:00:00  102  19.30  55.00  1.0  288.67  0
2009-07-01 09:00:00  103  22.33  39.67  1.0  289.60  0
2009-07-01 12:00:00  104  21.97  41.00  1.0  295.68  0
2009-07-01 15:00:00  105  18.11  44.55  1.2  300.12  0

关键注意事项

  • 确保新行的列名与原DataFrame完全一致,避免列错位或空值
  • 日期必须转换为datetime类型,与原索引类型匹配
  • 数值类型要对应原列的类型(如整数列需转换为int)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 22:15:56