【问题标题】:How to create a loop function using values from a dictionary?如何使用字典中的值创建循环函数?
【发布时间】:2019-07-09 14:53:58
【问题描述】:

我在 python 中创建了一个字典,它从本地机器上的文件夹中获取各种文件。字典中的每个键代表不同的文件,所以当我运行例如:

d['file1']

运行上面一行的输出如下所示:

Date         Total
01/02/2010   500
02/02/2010   400
03/02/2010   360
04/02/2010   170

我是否可以创建一个循环函数,该函数从每个键的“总计”列中获取字典值,这样我只需运行一次代码就可以输出给每个文件的均方误差?我想主要关注 Total 列,因为这将用于我想要执行的数学函数。

我希望如果我的字典中有 3 个值,该函数将循环 3 次,然后均方误差总数将与文件名一起打印。 IE。这样的输出

File 1 - Mean Square error is 89.1
File 2 - Mean Square error is 102.5
File 3 - Mean Square error is 111

谢谢。

【问题讨论】:

  • 如果我理解正确的话,这只是将两个简单的任务组合在一起,这就是我们拥有计算机的原因。对于 d.values() 中的 df:computeaverage(df)
  • 我的意思是这个值是每个数据帧中每个日期记录的数字。我知道执行“d['file1'][Total]”之类的操作会列出 df 中包含的所有数字。如何将其集成到一个函数中以执行我在问题中所说的内容?

标签: python file dictionary jupyter mean-square-error


【解决方案1】:

假设 dict 中的每个值都是一个数据框,您可以简单地遍历 dict 并使用 pd.Series.mean 计算平均值:

d = {'file1': pd.DataFrame({'Total': [1, 2, 3]}),
     'file2': pd.DataFrame({'Total': [4, 5, 6]})}

for file_name, df in d.items():
    print('{} - Average is {}'.format(file_name, df['Total'].mean()))

输出

file1 - Average is 2.0
file2 - Average is 5.0

【讨论】:

  • 如果我想通过使用 sklearn.metrics 库来计算每个 dict 键中“总计”列的均方误差,有没有办法可以将其包含在 for 循环中?
猜你喜欢
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 2019-03-01
  • 2023-01-17
  • 2013-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多