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

Python中如何合并两列并按特定顺序重新排列数据?

问题描述

本人是Python新手,需要将CA1与CA2合并、CB1与CB2合并,并按照示例中展示的特定顺序重新排列数据。

原始数据集

CA1CB1CA2CB2
1A1.1B1.2
2C1.3D1.4
3E1.5F1.6
4G1.7H1.8

期望结果

CA1CB1
1A1.1
2B1.2
3C1.3
4D1.4
5E1.5
6F1.6
7G1.7
8H1.8
解决方案

使用pandas库可以快速实现需求,以下是两种可行方法:

方法一:列堆叠合并

import pandas as pd

# 构造原始数据集
data = {
    'CA1': ['A', 'C', 'E', 'G'],
    'CB1': [1.1, 1.3, 1.5, 1.7],
    'CA2': ['B', 'D', 'F', 'H'],
    'CB2': [1.2, 1.4, 1.6, 1.8]
}
df = pd.DataFrame(data, index=[1,2,3,4])

# 将CA1/CA2、CB1/CB2分别转为长格式后提取值
ca_combined = pd.melt(df[['CA1', 'CA2']], value_name='CA1')['CA1']
cb_combined = pd.melt(df[['CB1', 'CB2']], value_name='CB1')['CB1']

# 组合成新数据集并重置索引
result_df = pd.DataFrame({'CA1': ca_combined, 'CB1': cb_combined})
result_df.index = range(1, len(result_df)+1)

print(result_df)

方法二:重命名后拼接

import pandas as pd

# 构造原始数据集
data = {
    'CA1': ['A', 'C', 'E', 'G'],
    'CB1': [1.1, 1.3, 1.5, 1.7],
    'CA2': ['B', 'D', 'F', 'H'],
    'CB2': [1.2, 1.4, 1.6, 1.8]
}
df = pd.DataFrame(data, index=[1,2,3,4])

# 将CA2/CB2重命名为CA1/CB1,再与原CA1/CB1行拼接
result_df = pd.concat([
    df[['CA1', 'CB1']],
    df[['CA2', 'CB2']].rename(columns={'CA2':'CA1', 'CB2':'CB1'})
], ignore_index=True)
result_df.index = range(1, len(result_df)+1)

print(result_df)

两种方法都能输出你需要的结果,可根据习惯选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:45:50