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

如何基于前一行计算数据,为Pandas DataFrame添加5行新数据?

高效生成并追加Pandas DataFrame行的实现方式

想要高效实现需求,核心是避免逐行追加DataFrame(因为Pandas的DataFrame是不可变结构,每次追加都会复制整个数据集,效率极低),改用「先循环生成所有新数据的列表,再一次性合并」的方式,具体步骤如下:

步骤1:提取原DataFrame的起始基准值

先获取原DataFrame最后一行的关键值,作为新行的起始基准:

import pandas as pd

# 假设你的原DataFrame名为df
last_row = df.iloc[-1]
# 新行的起始索引、period、value2
start_idx = last_row.name + 1
start_period = last_row['period'] + 1
start_value2 = last_row['value2'] + 1

步骤2:循环生成新数据列表

用for循环批量生成5行数据的字典列表,这一步的开销远低于逐行操作DataFrame:

new_rows = []
for i in range(5):
    new_rows.append({
        'period': start_period + i,
        'value2': start_value2 + i,
        'fieldName': 'eps'
    })

步骤3:合并新数据到原DataFrame

将生成的列表转为DataFrame,设置连续索引后,一次性合并到原DataFrame:

# 创建新DataFrame并指定索引
new_df = pd.DataFrame(new_rows, index=range(start_idx, start_idx + 5))
# 合并两个DataFrame
df = pd.concat([df, new_df], axis=0)

这种方式既满足了循环生成的需求,又保证了效率,避免了逐行追加带来的性能损耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:48:31