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

如何用循环合并40列为2列并生成标签,构建x与y数据集?

解决方案

优化后的代码实现

import pandas as pd

# 假设q2_data已完成加载
groups = []
new_columns = ["x1", "x2"]

# 循环拆分每2列一组,自动处理20个分组
for i in range(20):
    start_col = i * 2
    end_col = (i + 1) * 2
    # 提取当前分组并修改列名
    current_group = q2_data.iloc[:, start_col:end_col].copy()
    current_group.columns = new_columns
    groups.append(current_group)

# 拼接所有分组得到特征集x
x = pd.concat(groups, ignore_index=True)

# 生成对应标签集y,每个标签对应100条样本
y = pd.Series([label for label in range(20) for _ in range(100)])

# 验证结果形状
print(f"特征集x形状: {x.shape}")  # 输出 (2000, 2)
print(f"标签集y形状: {y.shape}")  # 输出 (2000,)

代码说明

  • 循环拆分分组:通过range(20)遍历20个分组,自动计算每组的列索引范围(i*2到(i+1)*2),替代手动写20次切片操作,后续如果列数调整,只需修改循环次数即可。
  • 统一列名与拼接:每个分组重命名为指定列名后存入列表,最后一次性用concat拼接,避免手动罗列20个分组变量。
  • 标签生成:通过列表推导式生成标签,每个标签(0-19)重复100次,刚好对应每个分组的100条样本,保证标签与特征一一对应。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:30:50