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

如何从Pandas列生成列表?为DataFrame添加含最近3个元素的col2列

生成包含最后3个元素的新列col2

可以通过Pandas的rolling窗口函数实现需求,具体代码如下:

import numpy as np
import pandas as pd

ds = {'col1': [1,2,3,3,3,6,7,8,9,10]}
df = pd.DataFrame(data=ds)

# 生成col2,每行存储到当前位置为止的最后3个col1元素
df['col2'] = df['col1'].rolling(window=3, min_periods=1).apply(lambda x: x.astype(int).tolist(), raw=False)

代码说明

  • rolling(window=3):定义窗口大小为3,即每次取当前行及之前最多2行的元素。
  • min_periods=1:允许窗口内元素不足3个时(前两行)仍生成结果,避免返回空值。
  • apply(lambda x: x.astype(int).tolist()):将窗口内的Series对象转换为整数列表,保证结果和原col1的数值类型一致。

最终输出

执行代码后,DataFrame的结果如下:

col1          col2
0     1          [1]
1     2       [1, 2]
2     3    [1, 2, 3]
3     3    [2, 3, 3]
4     3    [3, 3, 3]
5     6    [3, 3, 6]
6     7    [3, 6, 7]
7     8    [6, 7, 8]
8     9    [7, 8, 9]
9    10   [8, 9, 10]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:50:28