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

2024-10-02 14:19:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

plotting=dictionary.values()

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

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

我对python相当缺乏经验,因此如果有任何贡献,我将不胜感激


Tags: 数据方法key代码元素列表dictionary字典
1条回答
网友
1楼 · 发布于 2024-10-02 14:19:40

我建议你去看看pandas . 它是为数据分析而设计的,有很多非常有用的功能。它可能有一点曲线,但这里有大量关于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还通过^{}函数内置了对^{}的支持

相关问题 更多 >