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

如何合并不同形状、列名各异的两个DataFrame并新增指定列?

解决方案

你可以用 pandas 的数据拼接和列处理功能来实现,步骤如下:

步骤说明与代码示例

首先假设你的两个 DataFrame 分别叫 df1(3列,含Turtlemint profile_id)和 df2(仅含clientid列),先构造示例数据方便理解:

import pandas as pd

# 示例第一个DataFrame
df1 = pd.DataFrame({
    "Turtlemint profile_id": ["tp_001", "tp_002", "tp_003"],
    "列A": ["值A1", "值A2", "值A3"],
    "列B": [10, 20, 30]
})

# 示例第二个DataFrame
df2 = pd.DataFrame({
    "clientid": ["cl_001", "cl_002"]
})

1. 给第一个DataFrame添加标记列

给 df1 新增一列(比如叫业务类型),所有值设为"Life":

df1["业务类型"] = "Life"

2. 统一列名并提取所需列

为了能纵向拼接,把两个DataFrame的ID列改成相同名称(比如都叫用户ID),同时提取需要保留的列:

# 处理df1:提取ID列和标记列,并重命名ID列
df1_processed = df1[["Turtlemint profile_id", "业务类型"]].rename(columns={"Turtlemint profile_id": "用户ID"})

# 处理df2:重命名clientid为统一的ID列名,标记列设为空值(按需调整)
df2_processed = df2.rename(columns={"clientid": "用户ID"})
df2_processed["业务类型"] = pd.NA  # 如果需要给第二个DF加其他标记,直接替换成对应值即可

3. 纵向拼接两个处理后的DataFrame

用pd.concat()把两个表堆叠起来,重置索引避免重复:

final_result = pd.concat([df1_processed, df2_processed], ignore_index=True)

最终的final_result就是你要的效果:原Turtlemint profile_id的行都带"Life"标记,clientid的行接在下方,标记为空(或你指定的其他值)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:45:57