如何使用python从csv文件中提取最小值和最大值
Posted
技术标签:
【中文标题】如何使用python从csv文件中提取最小值和最大值【英文标题】:how to extract the min value and max value from csv file using python 【发布时间】:2018-08-01 20:47:59 【问题描述】:我有一个 python 脚本,它从 csv 文件中读取并将请求的列附加到 2 个空列表中。之后我需要提取所提取列的最小值和最大值。
我写了这段代码,但它似乎不起作用,因为结果是空的。
代码:
import csv
mydelimeter = csv.excel()
mydelimeter.delimiter=";"
myfile = open("C:/Users/test/Documents/R_projects/homework/rdu-weather-history.csv")
myfile.readline()
myreader=csv.reader(myfile,mydelimeter)
mywind,mydate=[],[]
minTemp, maxTemp = [],[]
for row in myreader:
print(row[1],row[2])
minTemp.append(row[1])
maxTemp.append(row[2])
print ("min value element : ", min(minTemp))
print ("max value element : ", min(maxTemp))
【问题讨论】:
***.com/questions/21767529/… 看看这个 看起来你有错字 print ("max value element : ", min(maxTemp)) 应该是 print ("max value element : ", max(maxTemp)) Finding Maximum Value in CSV File的可能重复 【参考方案1】:这可能会有所帮助
import csv
with open('C:/Users/test/Documents/R_projects/homework/rdu-weather-history.csv', "r") as csvfile:
data = csv.reader(csvfile, delimiter=';')
minVal, maxVal = [], []
for i in data:
minVal.append(i[1])
maxVal.append(i[2])
print min(minVal)
print max(maxVal)
【讨论】:
我尝试了您的答案,但它显示此错误文件“C:\Users\test\Documents\Python_Projects\readCSV.py”,第 14 行,在我找到了我的问题的解决方案。 似乎 csv 文件包含一个空行 我所做的是在我的代码中处理异常,因此代码变为:
import csv
mydelimeter = csv.excel()
mydelimeter.delimiter=";"
myfile = open("C:/Users/test/Documents/R_projects/homework/rdu-weather-history.csv")
myfile.readline()
myreader=csv.reader(myfile,mydelimeter)
mywind,mydate=[],[]
minTemp, maxTemp = [],[]
for row in myreader:
# print(row[1],row[2])
try:
minTemp.append(float(row[1]))
maxTemp.append(float(row[2]))
except ValueError:
print ("error","on line",row)
print ("min value element : ", min(minTemp))
print ("max value element : ", max(maxTemp))
【讨论】:
【参考方案3】:您还可以使用 numpy 库来查找最小值和最大值。
import numpy as np
my_data = np.genfromtxt("C:/Users/test/Documents/R_projects/homework/rdu-weather-history.csv", delimiter=",", skip_header=True)
print ("min value element : ", my_data.min(axis=0)[1])
print ("max value element : ", my_data.max(axis=0)[2])
【讨论】:
【参考方案4】:您可以使用 Pandas 将数据加载到 DataFrame 中,它们具有 Sum、Max、Min、AVG 等内置函数。
import pandas as pd
df=pd.read_csv('Name.csv')
#FINDING MAX AND MIN
p=df['ColumnName'].max()
q=df['ColumnName'].min()
print(q)
就是这样,您将在指定列中找到最小值。
【讨论】:
您也可以通过q = df["ColumnName"].describe()
获得更多信息。以上是关于如何使用python从csv文件中提取最小值和最大值的主要内容,如果未能解决你的问题,请参考以下文章
如何从从excel文件派生的大量字典中的值列表中查找最小值和最大值
Python,从 csv 获取最小值、最大值和 95 percentil