python - 访问元组字典中所有元素的相同值

标签 python dictionary plot

我有一个字典,其中包含所有以 7 元组作为值的键。对于每个 7 元组,7 个值中的每一个都表示与该键所表示的数据集相对应的不同属性。例如,每个元组的第一个元素是该数据集原始数据的数组,第二个值是数据的平均值,第三个值是该平均值的误差,第四个值是该数据集的温度我想绘制这些值的各种不同组合,例如平均值与温度的关系。

所以我需要找到一种方法将字典值转换为包含所有相同属性的值的不同列表,即所有平均值的列表和所有温度的列表。我知道字典本质上是无序的,这使问题变得复杂,因为列表中的每个值都需要与另一个列表中的对应值具有相同的索引。

dictionary={}
for i in range(len(imagefolders)):
   dictionary[slugify(imagefolders[i])]=images2(r{}\*.png".format(imagefolders[i]))

plotting=dictionary.values()

上面的代码显示了我如何将键和值输入到字典中。我知道 dictioanry.values() 返回字典中所有值的列表,但是当我尝试上面的代码时,它甚至没有将其存储为变量。

我现在在想,也许使用字典来存储这些数据并不是最好的选择,所以如果有人有更好的想法,那么请说出来,但使其与字典一起使用的方法将是理想的。

我对 python 相当缺乏经验,所以非常感谢任何贡献。

最佳答案

我建议您查看pandas 。它专为数据分析而设计,具有大量 super 有用的功能。它可能有一点曲线,但 stackoverflow 上有大量文档。

为了向您展示一些功能,我创建了一个类似于您所描述的模拟字典。我正在使用一个非常简单的元组来帮助演示元素的位置以供稍后使用

columns = ['data', 'mean', 'error', 'temperature', 'other1', 'other2', 'other3']
d = {}
for i in ['one', 'two', 'three', 'four', 'five']:
    d[i] = (1, 2, 3, 4, 5, 6, 7)

print(d)
# {
#   'one':   (1, 2, 3, 4, 5, 6, 7),
#   'two':   (1, 2, 3, 4, 5, 6, 7),
#   'three': (1, 2, 3, 4, 5, 6, 7),
#   'four':  (1, 2, 3, 4, 5, 6, 7),
#   'five':  (1, 2, 3, 4, 5, 6, 7)
# }

如果上面的结构与您的字典结构匹配,那么我们就处于良好状态。要将所有内容放入一张巨大的表格中,您只需要下面几行即可使所有魔法变得可用。

import pandas as pd
df = pd.DataFrame.from_dict(d, orient='index', columns=columns)
print(df)
#        data  mean  error  temperature  other1  other2  other3
# three     1     2      3            4       5       6       7
# one       1     2      3            4       5       6       7
# five      1     2      3            4       5       6       7
# two       1     2      3            4       5       6       7
# four      1     2      3            4       5       6       7

要访问给定字段,您可以根据列对其进行索引,然后根据需要对其进行统计。

print(df['data'])
# one      1
# three    1
# four     1
# two      1
# five     1
# Name: data, dtype: int64

print(df['data'].mean())
# 1.0

Pandas 还内置了对 matplotlib 的支持通过df.plot()功能。

关于python - 访问元组字典中所有元素的相同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55748373/

相关文章:

使用 mtext 删除添加到绘图中的文本

python - 使用 setUpTestData 的 Django 测试不会保留测试之间的更改

Python计算字符串中不与字符串重叠的出现次数

python - 使用部分映射更新 pandas DataFrame 的列

java - 支持按索引和键排序、插入和查找的集合/映射

matlab - 可视化多个集合的基数

python-3.x - 如何使用pyplot填充阶梯曲线下的区域?

python - 使用 turtle 图形恢复 l-system 代码中的记录状态

python - 在antlr4 python目标中重用词法分析器对象

python - 计算数字中设置位的数量