【问题标题】: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)}")