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

如何合并两个Pandas分组聚合列并添加除法计算列

Pandas合并DataFrame并新增均值列的解决方案

步骤1:合并两个DataFrame

df_weight和df_TotalShow共享Genre列,直接用pd.merge()按该列合并,就能把两表的total_weight和total_shows整合到同一DataFrame中:

import pandas as pd

# 合并操作(默认内连接,可通过how参数指定外连接/左连接等逻辑)
df_merged = pd.merge(df_weight, df_TotalShow, on='Genre')

步骤2:新增Avg列

合并完成后,直接在新DataFrame中通过列运算生成Avg列——这种方式能保证索引完全对齐,避免单独用div得到孤立Series的问题:

# 计算均值列
df_merged['Avg'] = df_merged['total_weight'] / df_merged['total_shows']

# 若需处理除数为0的场景,用div方法并设置填充值
# df_merged['Avg'] = df_merged['total_weight'].div(df_merged['total_shows'], fill_value=0)

完整示例

假设你的数据结构如下,运行代码后即可得到包含Genre、total_weight、total_shows、Avg的完整DataFrame:

# 模拟你的数据结构
df_weight = pd.DataFrame({
    'Genre': ['Action', 'Comedy', 'Drama'],
    'total_weight': [250, 180, 320]
})

df_TotalShow = pd.DataFrame({
    'Genre': ['Action', 'Comedy', 'Drama'],
    'total_shows': [10, 9, 16]
})

# 合并+计算均值
df_merged = pd.merge(df_weight, df_TotalShow, on='Genre')
df_merged['Avg'] = df_merged['total_weight'] / df_merged['total_shows']

print(df_merged)

输出结果:

Genre  total_weight  total_shows   Avg
0   Action           250           10  25.0
1   Comedy           180            9  20.0
2    Drama           320           16  20.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:31:06