Python 按天时间查找CSV中的第一个和最后一个事件

Python 按天时间查找CSV中的第一个和最后一个事件,python,csv,datetime,filtering,Python,Csv,Datetime,Filtering,希望使用python从csv文件的行中找出值的第一次出现和最后一次出现。我要比较的值是日期值,它是第[1]行 输入: ABC, 12/2/2017 ,9:21 AM ABC, 12/2/2017 ,1:15 PM ABC, 12/2/2017 ,6:38 PM ABC, 12/4/2017 ,9:21 AM ABC, 12/4/2017 ,1:01 PM ABC, 12/7/2017 ,11:59 AM ABC, 12/8/2017 ,9:33 AM ABC, 12/8/2017 ,11:15

希望使用python从csv文件的行中找出值的第一次出现和最后一次出现。我要比较的值是日期值,它是第[1]行

输入:

ABC, 12/2/2017 ,9:21 AM
ABC, 12/2/2017 ,1:15 PM
ABC, 12/2/2017 ,6:38 PM
ABC, 12/4/2017 ,9:21 AM
ABC, 12/4/2017 ,1:01 PM
ABC, 12/7/2017 ,11:59 AM
ABC, 12/8/2017 ,9:33 AM
ABC, 12/8/2017 ,11:15 AM
ABC, 12/8/2017 ,5:15 PM
输出:

ABC, 12/2/2017 ,9:21 AM
ABC, 12/2/2017 ,6:38 PM
ABC, 12/4/2017 ,9:21 AM
ABC, 12/4/2017 ,1:01 PM
ABC, 12/7/2017 ,11:59 AM
ABC, 12/8/2017 ,9:33 AM
ABC, 12/8/2017 ,5:15 PM

提前感谢

这假定您的数据已经按照示例中的顺序进行了排序
operator.itemgetter(1)
返回一个函数,该函数允许
itertools.groupby
对第二项上的行进行分组(即
行[1]


帮助您表达您的问题:

  • 有助于你清楚地问,而这反过来又
  • 使您能够编写伪代码,从而
  • 可以是最小的示例(您已经尝试过的),反过来
  • 应该由您在问题中发布,然后
  • 使我们能够指导您找到解决方案

问题 查找给定CSV文件的第一行和最后一行(一天内的时间)。 该程序需要用Python编写。 程序需要从CSV文件中读取行。 我想阅读被分成3列的每一行(特别是第二列日期和第三列时间),以便将它们的值与其他行的相应值进行比较。 比较应在日期组中进行,并且仅比较同一日期的行

第[1]行中的日期值

给定输入 CSV文件的一个简单示例有以下3行,分别代表一天(第二列值为
12/2/2017
)和3次(第三列值为
9:21 AM
1:15 PM
6:38 PM
):

伪码 假设我不懂python,也不知道从哪里开始编码,下面是我想用python编程的逻辑流程:

  • 读取CSV文件的所有行
  • 按第二列(日期)值将行分组到一天内的时间列表中
  • 将时间列表(每天分组)与第三列(时间)值进行比较,以仅将两行过滤到结果中:第一次出现(最早时间)和最后一次出现(最晚时间)
  • 将筛选结果作为行写入CSV输出文件
  • 预期产量 在此之后,预期输出CSV将包含:

    ABC, 12/2/2017 ,9:21 AM
    
    ABC, 12/2/2017 ,6:38 PM
    
    请注意,已过滤掉一行(从结果中删除):


    看这里,欢迎来到堆栈溢出!纯代码编写请求与堆栈溢出无关——我们希望这里的问题与特定的编程问题有关——但我们很乐意帮助您自己编写!告诉我们,你被困在哪里了。这也有助于我们更好地回答您的问题。您的数据是否已经像您的输入示例那样排序?问题不清楚。第一行将是第[0]行,而不是第[1]行。清楚地解释你想做什么,以及到目前为止你尝试了哪些代码。@NikosTavoularis如果你标记给定的链接(查找csv文件的最后一行),很明显这并不能回答内容过滤的问题(最后一个时间戳)。这是一个很强的假设❗(语义上)已排序的行,但将实现查询筛选:每天最后一行组==最晚一天时间
    ABC, 12/2/2017 ,9:21 AM
    ABC, 12/2/2017 ,1:15 PM
    ABC, 12/2/2017 ,6:38 PM
    
    ABC, 12/2/2017 ,9:21 AM
    
    ABC, 12/2/2017 ,6:38 PM
    
    ABC, 12/2/2017 ,1:15 PM