Python 如何在没有numpy或pandas的情况下从文本文件计算平均值

Python 如何在没有numpy或pandas的情况下从文本文件计算平均值,python,average,standard-library,Python,Average,Standard Library,下面是我用numpy和pandas计算平均值的代码 def calc_average_books_stock(): text\u file=open('book\u data\u file.txt') 值=[] 对于索引,df.iterrows()中的数据: 如果int(数据['STOCK'])大于0: 值。追加(数据[‘成本?’]) 平均值=平均值(数值) 印刷品(f“平均库存图书:{轮(平均,2)}”) 我想知道,如果没有numpy和pandas,是否有一种方法可以做到这一点,只需使用py

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

def calc_average_books_stock():
text\u file=open('book\u data\u file.txt')
值=[]
对于索引,df.iterrows()中的数据:
如果int(数据['STOCK'])大于0:
值。追加(数据[‘成本?’])
平均值=平均值(数值)
印刷品(f“平均库存图书:{轮(平均,2)}”)
我想知道,如果没有numpy和pandas,是否有一种方法可以做到这一点,只需使用python的标准库即可

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

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

20

我不确定df的来源,但是如果你的文件是CSV格式的,你可以用CSV替换熊猫

不需要任何numpy或statistics库——平均值就是
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)}")
试试统计?