我有一个从csv文件读取的python脚本,并将请求的列附加到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))
答案 0 :(得分:4)
你可以使用Pandas你可以将数据加载到DataFrames中,它们有内置函数,如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)
这就是它你会在Specified列中找到Min值。
答案 1 :(得分: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)
答案 2 :(得分:0)
您还可以使用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])
答案 3 :(得分:0)
我为我的问题找到了解决方案。 似乎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))