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

如何将Pandas数据框列表中ub列合并至首个数据框并重命名

解决方案

假设你的数据框列表叫 dfs,而且所有数据框的行索引完全一致,可以用下面两种方法实现需求:

方法一:逐行合并(用join)

  1. 先把第一个数据框的lb列抽出来当结果的基础
  2. 挨个处理列表里剩下的每个数据框,把它们的ub列重命名成ub0、ub1...,再合并到结果里
import pandas as pd

# 保留第一个df的lb列作为初始结果
result = dfs[0][['lb']].copy()

# 从第二个df开始遍历
for idx, df in enumerate(dfs[1:], start=0):
    # 提取ub列并重命名,再合并到结果
    result = result.join(df['ub'].rename(f'ub{idx}'))

方法二:批量拼接(用concat)

先把所有需要的列收集好——第一个df的lb、后面每个df重命名后的ub,再一次性拼起来:

import pandas as pd

# 先把第一个df的lb列放进列表
columns_to_merge = [dfs[0]['lb']]

# 处理剩下的df,把ub列重命名后加入列表
for idx, df in enumerate(dfs[1:], start=0):
    columns_to_merge.append(df['ub'].rename(f'ub{idx}'))

# 按列拼接所有列
result = pd.concat(columns_to_merge, axis=1)

额外情况:保留第一个df的原ub列

如果你想把第一个数据框原本的ub列也保留,命名为ub0,后面的依次叫ub1、ub2...,可以这么改:

# 保留第一个df的lb和ub,把ub改名为ub0
result = dfs[0].rename(columns={'ub': 'ub0'}).copy()

# 合并后续df的ub列,命名为ub1、ub2...
for idx, df in enumerate(dfs[1:], start=1):
    result = result.join(df['ub'].rename(f'ub{idx}'))

因为所有数据框的行索引完全一致,上面的方法都会自动按索引对齐,不用额外设置匹配条件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:13:32