如何在gnuplot中按列名合并表格列?将多列组合为新列
解决方案(基于Python pandas)
要实现按列名组合列并堆叠成新列的需求,可以用pandas的列堆叠与拼接操作完成,步骤如下:
- 先定义原始数据,按列名指定需要组合的列组(比如
AC对应A和C,BD对应B和D) - 对每个列组进行纵向堆叠,生成新的单列数据
- 将堆叠后的列按顺序拼接,得到最终结果
代码实现
import pandas as pd # 构造原始表格数据 df = pd.DataFrame({ 'A': [1, 2, 8], 'B': [5, 8, 5], 'C': [7, 4, 7], 'D': [4, 9, 4] }) # 定义列组合规则:键是新列名,值是要堆叠的原列名列表 column_pairs = {'AC': ['A', 'C'], 'BD': ['B', 'D']} # 生成每个新列 result_columns = [] for new_col, cols in column_pairs.items(): # 堆叠指定列,并重命名为新列名 stacked = pd.concat([df[col] for col in cols], ignore_index=True).rename(new_col) result_columns.append(stacked) # 拼接所有新列成最终结果 result_df = pd.concat(result_columns, axis=1) print(result_df)
输出结果
AC BD 0 1 5 1 2 8 2 8 5 3 7 4 4 4 9 5 7 4
关键说明
- 完全通过列名指定要组合的目标列,符合需求要求
pd.concat([df[col] for col in cols], ignore_index=True)负责将指定列纵向堆叠,ignore_index=True重置索引保证连续- 最后通过
axis=1横向拼接堆叠后的列,得到目标表格
内容的提问来源于stack exchange,提问作者magfan
相关产品推荐
相关产品推荐

