如何基于已有行计算结果创建新行并整合至DataFrame
解决方法:新增汇总行业数据到DataFrame
直接用numpy数组相加的方式会丢失分组维度的信息(比如不同国家、不同年份的对应关系),用pandas的分组求和+合并方法更靠谱,步骤如下:
1. 筛选目标行业并分组求和
先把需要汇总的行业筛选出来,按Economy、ADB Code、Year这三个维度分组,对指数列求和:
import pandas as pd # 定义需要汇总的行业列表 target_sectors = ['Construction', 'Manufacturing', 'Mining, Utilities'] # 筛选目标行业数据,按关键维度分组求和 industry_summary = df[df['Sector'].isin(target_sectors)] \ .groupby(['Economy', 'ADB Code', 'Year'], as_index=False) \ .agg({'Employment index': 'sum', 'VA index': 'sum'}) # 给汇总数据设置新的行业名称 industry_summary['Sector'] = 'Industry' # 可根据需求修改名称
2. 合并汇总数据到原DataFrame
用concat把原数据和新生成的汇总数据合并:
# 合并原数据与汇总数据,重置索引避免重复 final_df = pd.concat([df, industry_summary], ignore_index=True)
这种方法会自动保留每个国家、年份对应的Economy、ADB Code信息,不会出现数据错位的问题,比直接操作numpy数组更贴合你的需求。
内容的提问来源于stack exchange,提问作者kssmvv
相关产品推荐
相关产品推荐

