我有 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] )
这样它应该为所有行生成值。 有人可以帮我吗?
最佳答案
首先使用 concat
连接所有 DataFrame
聚合Series
的sum
,然后将category
列从df1
转换为Series
的索引> 并除以 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')
关于python - 如何在Python中迭代多个数据帧并将值添加到新数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58061001/