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

Pandas技术问题:如何在DataFrame中插入可变数量的行?

Pandas实现递增序列行扩展的方法

我来帮你搞定这个需求!你想要根据ADO_incr_y - ADO_incr_x的差值,为每行生成从ADO_incr_x到ADO_incr_y的递增序列对,同时保持其他列不变对吧?

首先先明确你的输入和预期输出:

原始DataFrame

import pandas as pd

df = pd.DataFrame({
    "plan": ["3ABP3"],
    "ADO_ver_x": [25.0],
    "ADO_incr_x": [4.0],
    "ADO_ver_y": [25.0],
    "ADO_incr_y": [7.0]
})

预期输出

plan  ADO_ver_x  ADO_incr_x  ADO_ver_y  ADO_incr_y
0  3ABP3       25.0         4.0       25.0         5.0
1  3ABP3       25.0         5.0       25.0         6.0
2  3ABP3       25.0         6.0       25.0         7.0

你之前用np.repeat的思路问题在于,它只是简单重复整行,没办法生成递增的序列值。下面给你两种符合Pandas/Python风格的实现方式:


方法一:直观的行生成 + explode展开

这种方法通过apply为每行生成对应的递增序列对,再用explode展开,逻辑清晰易懂,适合小数据集:

def generate_increment_rows(row):
    start_x = row["ADO_incr_x"]
    end_y = row["ADO_incr_y"]
    # 计算需要生成的行数
    num_rows = int(end_y - start_x)
    # 生成x和y的递增序列
    x_sequence = [start_x + i for i in range(num_rows)]
    y_sequence = [start_x + 1 + i for i in range(num_rows)]
    # 返回每行的字典列表
    return [
        {
            "plan": row["plan"],
            "ADO_ver_x": row["ADO_ver_x"],
            "ADO_incr_x": x,
            "ADO_ver_y": row["ADO_ver_y"],
            "ADO_incr_y": y
        }
        for x, y in zip(x_sequence, y_sequence)
    ]

# 应用函数并展开成DataFrame
result_df = df.apply(generate_increment_rows, axis=1).explode().apply(pd.Series).reset_index(drop=True)
print(result_df)

方法二:高效的向量化操作

这种方法利用NumPy的向量化特性,避免循环,效率更高,适合大数据集:

import numpy as np

# 计算每行需要生成的行数
repeat_counts = (df["ADO_incr_y"] - df["ADO_incr_x"]).astype(int)
# 先重复原始行对应次数
repeated_df = df.loc[df.index.repeat(repeat_counts)].reset_index(drop=True)
# 生成每行的偏移量(从0到n-1)
offsets = np.concatenate([np.arange(count) for count in repeat_counts])
# 更新ADO_incr_x和ADO_incr_y的值
repeated_df["ADO_incr_x"] += offsets
repeated_df["ADO_incr_y"] = repeated_df["ADO_incr_x"] + 1  # 因为y始终比x大1

print(repeated_df)

这两种方法都能得到你想要的结果,你可以根据数据集大小选择合适的方案~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 15:04:09