我有 4 个数据框:df1 = pd.read_csv('values1.csv')df2 = pd.read_csv('values2.csv')df3 = pd.read_csv('values3.csv')df4 = pd.read_csv('values4.csv')他们每个人的结构如下:我想创建一个新的数据框,以便它具有所有数据框中每个类别的聚合值。因此,新数据框应具有使用以下公式计算的值:-Total['values'][0] = df1['values'][0] / (df1['values'][0] + df2['values'][0] + df3['values'][0] + df4['values'][0] )像这样它应该为所有行生成值。有人可以帮帮我吗。
1 回答

红颜莎娜
TA贡献1842条经验 获得超12个赞
首先将所有DataFrames 与concat并聚合sum为Series,然后将列转换category为索引 for Seriesfromdf1并除以Series.div:
s = pd.concat([df1, df2, df3, df4]).groupby('category')['values'].sum()
out = df1.set_index('category')['values'].div(s).reset_index(name='total')
编辑:
s = pd.concat([df1, df2, df3, df4]).groupby('category')['values'].sum()
s1 = pd.concat([df1, df2]).groupby('category')['values'].sum()
out = s1.div(s2).reset_index(name='new')
添加回答
举报
0/150
提交
取消