【问题标题】:How to calculate average from text file without numpy or pandas如何在没有 numpy 或 pandas 的情况下从文本文件计算平均值
【发布时间】:2021-03-16 11:16:42
【问题描述】:

这是我用 numpy 和 pandas 计算平均值的代码

def calc_average_books_stock():
    
  text_file = open('book_data_file.txt')
    
  values = []
    
  for index,data in df.iterrows():
        
    if int(data['STOCK']) > 0:
            
      values.append(data['COST?'])
    
      avg = np.mean(values)
    
      print(f"Average Book in Stock: {round(avg, 2)}")

我想知道是否有办法在没有 numpy 和 pandas 的情况下做到这一点,并且能够使用 python 的标准库来做到这一点

【问题讨论】:

标签: python average standard-library


【解决方案1】:

用 python 的标准库来做 您可以使用来自statistics 内置模块的.mean 来计算平均值,例如:

import statistics
values = [10, 30, 20]
avg = statistics.mean(values)
print(avg)

输出:

20

【讨论】:

    【解决方案2】:

    我不确定 df 的来源,但如果您的文件是某种 CSV 格式,您可以将 pandas 替换为 csv。

    不需要任何 numpy 或统计库 - 平均值只是 sum() 除以计数。

    而且我认为当你计算平均值时你的缩进是关闭的。

    import csv
    
    def calc_average_books_stock():
        
      text_file = open('book_data_file.txt', 'r')
    
      reader = csv.DictReader(text_file)
        
      values = []
        
      for data in reader:
            
        if int(data['STOCK']) > 0:
                
          values.append(data['COST?'])
        
      avg = sum(values) / len(values)
        
      print(f"Average Book in Stock: {round(avg, 2)}")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-21
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多