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

如何多次拼接Pandas DataFrame并使指定数值列从1到12递增?

实现方案

这里提供两种高效的实现方法,均适配你5000行原始数据的场景,不会有性能问题:

方法1:列表推导式+concat(写法最直观)

直接遍历1到12的数值,每次修改原始DataFrame最后一列的值后拼接即可:

import pandas as pd

# 请将下方df_raw替换为你自己的原始DataFrame变量名
result = pd.concat(
    [df_raw.assign(**{df_raw.columns[-1]: num}) for num in range(1, 13)],
    ignore_index=True
)

参数说明:

  • df_raw.columns[-1] 动态读取最后一列的列名,无需你手动填写,避免列名写错
  • ignore_index=True 会自动重置最终结果的行索引,避免出现重复的索引值
  • range(1,13) 生成1到12的整数,刚好对应你要拼接的12次需求

方法2:numpy重复操作(性能最优)

如果后续数据量进一步增大,推荐用这种完全向量化的操作,比多次拼接效率更高:

import pandas as pd
import numpy as np

# 重复12次原始DataFrame的所有行
df_repeat = df_raw.loc[np.repeat(df_raw.index, 12)].reset_index(drop=True)
# 给最后一列赋值为1到12的循环序列
df_repeat.iloc[:, -1] = np.tile(np.arange(1, 13), len(df_raw))

你可以根据自己的使用习惯选择任意一种方法,最终输出结果和你示例的效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:45:03