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

如何在Pandas DataFrame中将Y列合并到X列并复制Z列值?

实现方法

先看原始的DataFrame:

X    Y    Z
0    1    4    True
1    2    5    True
2    3    6    False

要得到目标结构,最直接的方式是拆分后拼接:

  1. 提取原DataFrame中的X和Z列
  2. 提取Y和Z列,将Y列重命名为X
  3. 把这两部分DataFrame拼接起来并重置索引

对应的代码如下:

import pandas as pd

# 创建原始DataFrame
df = pd.DataFrame({
    'X': [1,2,3],
    'Y': [4,5,6],
    'Z': [True, True, False]
})

# 拆分并拼接得到结果
part1 = df[['X', 'Z']]
part2 = df[['Y', 'Z']].rename(columns={'Y': 'X'})
result = pd.concat([part1, part2], ignore_index=True)

print(result)

运行后输出的结果就是:

X      Z
0  1   True
1  2   True
2  3  False
3  4   True
4  5   True
5  6  False

如果想用melt函数实现,需要额外调整顺序以匹配目标结构:

# 使用melt的方式
melted = df.melt(id_vars='Z', value_vars=['X', 'Y'], value_name='X', var_name='source_col')
result = melted.sort_values(by='source_col').drop('source_col', axis=1).reset_index(drop=True)

这种方法先把X和Y列转为行数据,再按原列名排序,最后去掉辅助列,也能得到相同结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:10:15