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

如何将pandas单列数据周期性自动分配生成多个新列

实现方案

核心思路

针对大数据量场景,直接使用numpy的维度重塑能力完成拆分,时间复杂度仅为O(1)(底层仅修改数组元数据,不复制数据),效率远高于循环遍历方案。

完整代码

你可以先设定要拆分的列数(也就是周期长度),比如示例中是每3个数值拆为一行对应3列,设置n_cols=3即可,列数可按需调整:

import pandas as pd
import numpy as np

# 你的原始数据生成逻辑
numbers = range(1,16)
df = pd.DataFrame(numbers, columns=['sequence'])

# 配置拆分的列数,可根据业务需求修改
n_cols = 3

# 核心逻辑:维度重塑
# 若总长度无法被列数整除,自动补NaN保证维度合法,避免报错
total_len = len(df)
pad_len = (n_cols - total_len % n_cols) % n_cols
pad_values = np.pad(df['sequence'].values, (0, pad_len), constant_values=np.nan)

# 生成最终目标DataFrame
result = pd.DataFrame(pad_values.reshape(-1, n_cols), columns=[f'col{i+1}' for i in range(n_cols)])

效果说明

针对你提供的示例数据,运行后输出的result结构和目标示例完全一致:第一行是1、2、3,第二行是4、5、6,依此类推到最后一行13、14、15。如果实际业务中数据长度无法被列数整除,代码会自动在末尾补NaN,不需要额外处理边界情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 11:06:03