#!/bin/python3
import csv
import statistics
def read_cvs():
with open('hw_25000.csv', 'r') as csv_rf:
cvs_reader = csv.DictReader(csv_rf)
for line in cvs_reader:
print(line[' "Height(Inches)"'])
read_cvs()
我有这个代码可以读取我的文件并打印出我的高度值,但我不知道如何使用statistics.mode((打印出最频繁的高度值。
CSV文件位于https://people.sc.fsu.edu/~jburkardt/data/csv/csv.html
#试试这个
print(statistics.mode(line[' "Height(Inches)"']))
该文件中的标题在每个列名的文本之前都包含一个额外的空格。这可以通过使用skipinitialspace=True
选项来删除。此外,CSV读取器将以字符串形式读取所有内容,因此需要将值转换为浮点值。
尝试以下方法:
import csv
import statistics
def read_cvs():
heights = []
with open('hw_25000.csv', 'r') as csv_rf:
cvs_reader = csv.DictReader(csv_rf, skipinitialspace=True)
for line in cvs_reader:
heights.append(float(line['Height(Inches)']))
print(statistics.mode(heights))
read_cvs()
对于您的示例CSV文件,它给出:
70.04724
较短的版本是:
def read_cvs():
with open('hw_25000.csv', 'r') as csv_rf:
cvs_reader = csv.DictReader(csv_rf, skipinitialspace=True)
print(statistics.mode(float(line['Height(Inches)']) for line in cvs_reader))