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

标签 python pandas dataframe

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

它们的结构如下: enter image description here

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

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

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

最佳答案

首先使用 concat 连接所有 DataFrame聚合Seriessum,然后将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/

相关文章:

python - 将 4 个多维数组合并为一个数组,同时保持原始维度 - Python

python - 访问与外键链接的 SQLAlchemy 模型

python - 如何将小时 "column"添加到仅包含分钟和秒的日期时间系列

string - Pandas :将多列转换为字符串

python - 从 pandas DataFrame 计算每小时总数的方法是什么比 for 循环更快?

r - 排除特定行下方的所有记录

python - 使用两个现有列创建和填充 Pandas 数据框列

python - 并行运行方法

python - 使用 Pandas 的字典键和值的列名称

arrays - 将数据框放入r中的数组中