python - 如何迭代多个数据帧并将值添加到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')
我想创建一个新的数据框,以便它具有所有数据框中每个类别的聚合值。因此,新数据框应具有使用以下公式计算的值:-
Total['values'][0] = df1['values'][0] / (df1['values'][0] + df2['values'][0] + df3['values'][0] + df4['values'][0] )
像这样它应该为所有行生成值。有人可以帮帮我吗。
解决方案
首先将所有DataFrame
s 与concat
并聚合sum
为Series
,然后将列转换category
为索引 for Series
fromdf1
并除以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')
推荐阅读
- c# - 忽略来自 ImageResizer 的 gif 文件
- javascript - onmouserover() 出现错误:分配给右值
- php - 如何解决“内爆():传递的参数无效”?
- python - 即使每个 csv 文件为空,如何使用 read_csv ?蟒蛇熊猫
- javascript - ChartJS 条上的完整边框
- java - 为什么我不能使用 .jar 文件中的 URL 路径来检测它是否是目录?
- c# - 如何在 ASP.Net MVC 中实现“导航堆栈”?
- javascript - 哪个 npm 库适合流程图显示?
- reactjs - React 应用程序中特定页面的社交分享和头部标签
- javascript - 错误:route.params 未定义尝试从 FlatList 传递参数