如何在没有 numpy 或 pandas 的情况下从文本文件计算平均值
Posted
技术标签:
【中文标题】如何在没有 numpy 或 pandas 的情况下从文本文件计算平均值【英文标题】:How to calculate average from text file without numpy or 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 的标准库来做到这一点
【问题讨论】:
docs.python.org/3/library/statistics.html 试试统计数据? 【参考方案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)")
【讨论】:
以上是关于如何在没有 numpy 或 pandas 的情况下从文本文件计算平均值的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用 Pandas 的情况下创建等效于 numpy.nan 的日期时间对象?
如何在没有操作的情况下对 Pandas 数据框进行分组或聚合
如何在没有 Pandas STD 或 Mean 函数的情况下计算滚动 STD?
如何在没有任何统计数据(如 Pandas 中的平均值或计数)的情况下进行简单分组?