如何使用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 行,在 minTemp.append(float(row[ 1])) builtins.ValueError:无法将字符串转换为浮点数: 你可以把他们去掉float方法。【参考方案2】:

我找到了我的问题的解决方案。 似乎 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文件派生的大量字典中的值列表中查找最小值和最大值

TSQL - 如何在另一列中提取具有最小值和最大值的列

如何只进行“n”比较,从文本文件中查找最小值和最大值?

Python,从 csv 获取最小值、最大值和 95 percentil

bigrquery:使用 dplyr 动词在 5-95 个分位数内提取平均值、最大值、最小值和 sd 不起作用

如何从 zip 中提取 csv 文件并在 python 中将其保存到磁盘? [复制]