使用python打印最大和最小值以及与最大和最小值关联的日期

时间:2019-02-20 18:31:47

标签: python max

我是编程新手,正在尝试编写一个程序,该程序可以评估并打印最大AVE.SPEED值以及与csv文件中的该值相关的日期。 这将是文件数据集的示例:

   STATION  DATE        AVE_SPEED
0    US68   2018-03-22  0.00
1    US68   2018-03-23  0.00
2    US68   2018-03-24  0.00
3    US68   2018-03-26  0.24
4    US68   2018-03-27  2.28
5    US68   2018-03-28  0.21
6    US10   2018-03-29  0.04
7    US10   2018-03-30  0.00
8    US10   2018-03-31  0.00
9    US10   2018-04-01  0.00
10   US10   2018-04-02  0.02

到目前为止,这是我想出的,但是它只是在最后打印出整个集合。

import pandas as pd
df = pd.read_csv (r'data_01.csv')
max1 = df['AVE_SPEED'].max()
print ('Max Speed in MPH: ' + str(max1))
groupby_max1 = df.groupby(['DATE']).max()
print ('Maximum Average Speed Value and Date of Occurance: ' + str(groupby_max1))

2 个答案:

答案 0 :(得分:0)

您的初始最大平均速度以熊猫为准。

要找到相应的日期,我将执行以下操作:

mport pandas as pd
df = pd.read_csv (r'data_01.csv')
max1 = df['AVE_SPEED'].max()
print ('Max Speed in MPH: ' + str(max1))
date_of_max = df[df['AVE_SPEED'] == max1]['date'].values[0]

有效地,您正在创建另一个数据帧,其中任何“ AVE_SPEED”必须等于最大速度(除非有多个具有相同最大速度的实例,否则它应为单行)。从那里,您返回该数据框/行的“日期”值。

然后您可以根据需要打印/返回最大速度和相应的日期。

答案 1 :(得分:0)

我想提出一种非熊猫方法,因为许多新程序员专注于学习熊猫而不是学习python,尤其是在这里,更容易理解普通python在做什么而不是使用数据框:

with open('data_01.csv') as f:
    data = f.readlines()[1:]  # ditch the header
    data = [x.split() for x in data]  # turn each line in to a list of its values
    data.sort(key=lambda x: -float(x[-1]))  # sort by the last item in each list (the speed) ascending
    print(data[0][2])  # print the date (index 2) from the first item in your sorted data