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

如何基于Pandas DataFrame中的X列自动生成对应Y列?

问题

现有如下Pandas DataFrame数据:

import pandas as pd
df = pd.DataFrame({
    'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
    'X1': [7,7,7,7,9],
    'X2': [8,9,7,5,6],
})
print(df)

需求:识别数据中所有以X开头的列,基于这些列自动生成对应的Y列。例如现有X1、X2列,则生成Y1(值全为1)、Y2(值全为2)列;若有X1、X2、X3列,则生成Y1=1、Y2=2、Y3=3的列,期望结果如下:

df2 = pd.DataFrame({
    'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
    'X1': [7,7,7,7,9],
    'X2': [8,9,7,5,6],
    'Y1': [1,1,1,1,1],
    'Y2': [2,2,2,2,2],
})
print(df2)

请问如何实现该需求?

解决方案

可以通过以下步骤自动实现需求:

  1. 筛选目标列:先找出所有以X开头的列
  2. 生成对应Y列:遍历每个X列,提取列名后的数字,创建同名前缀为Y的列,并填充对应数字值

代码实现

import pandas as pd

df = pd.DataFrame({
    'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
    'X1': [7,7,7,7,9],
    'X2': [8,9,7,5,6],
})

# 筛选所有以X开头的列
x_columns = [col for col in df.columns if col.startswith('X')]

# 遍历生成Y列
for col in x_columns:
    # 提取列名中的数字部分(如X1提取1)
    num = col[1:]
    # 创建Y列并赋值对应数字
    df[f'Y{num}'] = int(num)

print(df)

说明

  • 代码会自动识别所有以X开头的列,不管是X1、X2还是Xn,都能生成对应的Y列
  • 无需手动指定列名,完全基于现有数据自动处理,扩展性强

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:27:19