如果我有一个Python中有两个键的字典,如何实现mean.median和variance之类的函数?

如果我有一个Python中有两个键的字典,如何实现mean.median和variance之类的函数?,python,dictionary,Python,Dictionary,我的文件夹中有许多文件,如下所示: 我正在尝试实现一个数据字典。我对用2个键创建它感兴趣(第一个是http地址,第二个是第三个字段(使用插件),比如adblock)。这些值引用了不同的度量,因此我的目的是在字典实现后,计算每个站点的平均值,并插入每个度量的平均值、中值和方差。例如,对于平均值,我的意图是考虑文件中的所有第4个字段值等。我试图写这个代码,但首先,我不确定它是正确的。 我读了其他帖子,但没有人解决我的问题,因为它们威胁或只有一个键,或者它们没有显示如何访问字典中的不同值来计算均值

我的文件夹中有许多文件,如下所示:

我正在尝试实现一个数据字典。我对用2个键创建它感兴趣(第一个是http地址,第二个是第三个字段(使用插件),比如adblock)。这些值引用了不同的度量,因此我的目的是在字典实现后,计算每个站点的平均值,并插入每个度量的平均值、中值和方差。例如,对于平均值,我的意图是考虑文件中的所有第4个字段值等。我试图写这个代码,但首先,我不确定它是正确的。

我读了其他帖子,但没有人解决我的问题,因为它们威胁或只有一个键,或者它们没有显示如何访问字典中的不同值来计算均值、中位数和方差。 问题很简单,承认dictionary实现是正常的,我必须以何种方式访问key1:www.google.it->key2:adblock的不同值?
任何类型的帮助都是可以接受的,我可以提供任何其他的答案。

你可以使用字典来做你想做的事情,但是你应该考虑使用这个库。该库以名为“DataFrame”的表格数据结构为中心,该结构在按列和按行计算(如您似乎需要的计算)方面表现出色

为了让您开始,下面是使用该方法读取一个文本文件的Pandas代码。它还显示第四列的平均值和方差:

#导入熊猫库:
作为pd进口熊猫
#将文件“table.txt”读入DataFrame对象。假定
#无标题、固定宽度的文件,如示例中所示:
df=pd.read_fwf(“table.txt”,header=None)
#显示DataFrame对象的内容:
打印(df)
#打印第四列(零索引):
打印(df[3])
#打印第四列的平均值:
打印(df[3].mean())
#打印第四列的差异:
打印(df[3].var())
来自数据帧对象的数据不存在。在前面的示例中,方括号
[]
按列号选择数据框中的一列。如果只想从第三列中包含
adblock
的行计算第四列的平均值,可以这样做:

#打印数据帧中具有“adblock”值的行
#在第三列(零索引):
打印(df[df[2]==“adblock”])
#仅打印该数据帧的第四列(零索引):
打印(df[df[2]==“adblock”][3])
#打印该数据帧第四列的平均值:
打印(df[df[2]==“adblock”][3].mean())
编辑: 您还可以同时计算多个列的平均值或方差:

#使用列数列表计算所有列数的平均值
#同时:
l=[3,4,5]
打印(df[l].mean())
结束编辑

如果要从多个文件中读取数据并对连接的数据进行计算,可以使用以下方法。此方法获取数据帧对象的列表并将其串联(默认情况下,按行)。使用以下行从目录中的所有
*.txt
文件创建数据帧:

df=pd.concat([pd.read_fwf(file,header=None),用于glob.glob(“*.txt”)中的文件),
忽略(索引=真)

请以文本而不是图像的形式发布您的代码:(编辑帮助页,如果您需要的话,非常感谢您的回答。它有效,我测试了一个文件。我问这个答案是为了知道如何使用字典,因为即使您的解决方案有效(我的解决方案也适用于numpy)问题是,在输出中,我为每个站点和插件获得了一个文件,其中包含结果(平均值、中值和方差)对于文件中的每一列,从第四列开始。@Schmuddi但那个人告诉我,使用matplotlib之后管理所有这些文件可能很困难或很长,所以他告诉我:建立一个字典以避免这种情况,并更快速、更容易地管理数据。我的目标不是使用concat方法,因为我只想比较获得的数据相同站点但不同插件的结果。@AndersonSilva:根据我的经验,Pandas数据框通常比相应的字典性能好得多,特别是如果你想对列进行计算的话。我经常处理超过15000000行的数据框,这并没有什么困难或缓慢的。另外,Matplotlib(尤其是构建在它之上的Seaborn)很好地处理数据帧。对我来说,从字典到数据帧的转换是一个巨大的改进,但当然,您的里程数可能会有所不同。如果您有兴趣同时计算多个列的平均值,我添加了另一个示例,正如您的评论所表明的,这是您关注的问题之一。我理解,但我的问题是:estions是:在这种情况下,我的输出中是否会有不同的文件,即每个网站插件一个文件?因为我每个网站插件都有一个文件,所以很明显,我会在每个文件中获得结果(就像在我的情况下,当我试图用numpy解决它时,它可以工作)…只是为了知道如何管理(和绘图)结果,作为第二步,在这次手术后。谢谢你的帮助,这对我来说是非常宝贵的。