python - 如何根据列表中的某个值将列表中的值相加?
问题描述
我有一个列表列表,每个列表都有以下项目:
site, count, time
sample data: site1, 15, 20
我正在尝试找出解决此问题的最佳方法。我想将每个站点的计数和时间相加。
当我遍历每个列表时,我想将它转换为字典,但我不确定这给了我什么。
for site, count, time in lists:
#create a dictionary, then what?
最终结果,我想要一个列表或字典(我可以使用的某种数据结构),每个站点的计数和时间加到每个站点的“总”列表中。
前任:
site, total_count, total_time
sample data:
site1, 50, 100 #all data for site1 added up
site2, 40, 300 #all data for site2 added up
不寻找编码的答案,只是完成这项工作的最佳方式和正确方向的一点。
解决方案
您说的是某种数据结构,因此可以DataFrame
从您拥有的列表中构造 a ,然后使用groupby
后面的sum
, 来获得您想要的。
示例:
import pandas as pd
data = [['site1',15,20],['site1',35,80],['site2',15,20]]
df = pd.DataFrame(data,columns=['site','time','count'])
print(df.groupby('site').sum())
输出
time count
site
site1 50 100
site2 15 20
或者:
data = [['site1',15,20],['site1',35,80],['site2',15,20]]
data_d = {}
for rec in data:
if rec[0] in data_d:
data_d[rec[0]][0] += rec[1]
data_d[rec[0]][1] += rec[2]
else:
data_d[rec[0]] = rec[1:]
推荐阅读
- python - Python Tkinter:如何在列表/元组中使用多个点创建_line?
- c# - 用于捕获各种可选组的通用正则表达式
- apache-spark - 一个热编码复合字段
- css - 如何在移动视图中使填充响应?
- wordpress - 在 WordPress i18n 中,“_x”和添加评论有什么区别?
- reactjs - 应用程序返回 false 作为值而不是数字
- javascript - 如何使用 Angular 在 http 请求中添加延迟?
- opengl - 当多个纹素处于相等距离时,在纹理的点采样期间返回哪个纹素值?
- redis - 使用 redis 排序集来维护顶级用户的上限列表(按分数)
- c - 质因数之和