如何迭代多个数据帧并将值添加到python中的新数据帧

我有 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')

他们每个人的结构如下:

http://img4.mukewang.com/6298712700017c2a01820127.jpg

我想创建一个新的数据框,以便它具有所有数据框中每个类别的聚合值。因此,新数据框应具有使用以下公式计算的值:-

Total['values'][0] = df1['values'][0] / (df1['values'][0] + df2['values'][0]  + df3['values'][0]  + df4['values'][0] )

像这样它应该为所有行生成值。有人可以帮帮我吗。


月关宝盒
浏览 89回答 1
1回答

红颜莎娜

首先将所有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')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python