如何用Python合并相似数据并求和?合并genre1与genre3的总电影数
合并两个DataFrame并对相同类别数值求和的Python实现
通用实现思路
对于结构相似的数据集(如pandas的Series/DataFrame),合并并对相同键/索引的数值求和,核心是对齐相同键后累加,常用两种方式:
- 直接使用
add()方法对齐索引并求和,缺失值补0 - 先拼接数据集,再按分组键求和
针对你的genre1和genre3的具体解决方案
你的genre1和genre3都是以genre为索引、仅含total movie列的DataFrame,以下是两种可行方法:
方法1:使用add()快速求和
# 对齐genre索引,缺失的genre补0后求和 merged_genre = genre1.add(genre3, fill_value=0) # 将求和后的浮点数转为整数(因为计数结果应为整数) merged_genre['total movie'] = merged_genre['total movie'].astype(int) print(merged_genre)
方法2:拼接后分组求和
import pandas as pd # 纵向拼接两个DataFrame combined_df = pd.concat([genre1, genre3]) # 按genre索引分组,对total movie列求和 merged_genre = combined_df.groupby(level='genre')['total movie'].sum().reset_index() # 可选:重新设置genre为索引 merged_genre = merged_genre.set_index('genre') print(merged_genre)
说明
add()方法更简洁高效,适合同结构、同索引类型的数据集合并求和concat+groupby更灵活,若后续需要对合并后的数据做其他分组操作,这种方式扩展性更强
内容的提问来源于stack exchange,提问作者Stev W
相关产品推荐
相关产品推荐

