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

如何合并两个DataFrame并对同名称对应数值求和生成新列

实现方案

因为两个DataFrame均以体裁名称为索引,直接对齐索引对应值相加即可,示例代码如下:

import pandas as pd

# 还原你给出的示例数据(如果已经有df1、df2可跳过这部分)
df1 = pd.DataFrame(
    {'genres1': [1168, 517, 431, 353, 335, 328, 20]},
    index=['Drama', 'Adventure', 'Documentary', 'Animation', 'Crime', 'Romance', 'Sci-Fi']
)
df2 = pd.DataFrame(
    {'genres2': [1625, 1233, 1200, 688, 562, 390, 336]},
    index=['Comedy', 'Action', 'Drama', 'Documentary', 'Crime', 'Adventure', 'Animation']
)

# 核心逻辑:对齐索引相加,缺失值填充为0,转换为列名为Genre的DataFrame
result = df1['genres1'].add(df2['genres2'], fill_value=0).to_frame(name='Genre')

# 如果你需要和你给出的预期输出一致,仅保留df1中出现过的体裁,加上以下行
result = result.reindex(df1.index)

# 如果需要按数值从高到低排序,加上以下行
result = result.sort_values(by='Genre', ascending=False)

代码说明

  • add方法会自动对齐两个Series的索引,同索引的值相加,仅在单侧出现的体裁用fill_value=0填充,不会出现空值
  • 去掉reindex行即可保留两个表中所有出现过的体裁(包含df2独有的Comedy、Action)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:18:01