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

如何基于特定规则拆分Pandas DataFrame的XY列为X和Y列?

Pandas生成滑动窗口列解决方案

假设你的DataFrame有一列名为XY的数值型数据,要生成X(连续20个元素的列表)和Y(对应第21个元素)两列,可以用以下方法实现:

代码实现

import pandas as pd

# 替换成你的实际DataFrame
df = pd.DataFrame({'XY': range(100)})  # 示例数据,包含100个连续数值

window_size = 20
# 生成X列:每行是XY列中连续20个元素的列表
df['X'] = [df['XY'].iloc[i:i+window_size].tolist() for i in range(len(df) - window_size)]
# 生成Y列:对应每行X窗口之后的第1个元素
df['Y'] = df['XY'].iloc[window_size:].tolist()

# 移除无对应Y值的行(最后20行)
df = df.dropna(subset=['Y']).reset_index(drop=True)

关键说明

  • window_size设为20,控制滑动窗口的长度;
  • 列表推导式遍历有效索引范围(总长度减20),每次截取连续20个元素转成列表存入X列;
  • Y列直接取XY列从第21个元素开始的所有值,和X列的每行一一对应;
  • 最后通过dropna移除无法匹配到Y值的行,并重置索引保证数据连续。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:14:59