【问题标题】:searching for records between two dates and two times in csv file using python programming使用python编程在csv文件中搜索两个日期和两次之间的记录
【发布时间】:2020-05-28 15:39:42
【问题描述】:

我有一个包含很多条目(行)的 csv 文件。第一列包含mm/dd/yyyy 格式的日期,第二列包含hh:min:sec 格式的时间。

我只想提供开始日期、开始时间、结束日期、结束时间,并且所有记录(行)都将在 csv 文件中的这些参数之间列出...

我尝试使用 pandas 但没有得到任何解决方案。

csv文件的条目如下:

Date      Time     Mode   Dir Reserved    Speed   Enf Speed
1/1/2020  0:00:10     N   R   170          103    70
1/1/2020  0:00:20     N   R   170           70    70
1/1/2020  0:00:30     N   R   170          105    70
1/1/2020  0:00:40     N   R   170          115    70
1/1/2020  0:00:50     N   R   170           81    70
1/1/2020  0:10:00     N   R   170          127    70
1/1/2020  0:10:10     N   R   170           74    70
1/1/2020  0:10:20     N   R   170          108    70

请帮助我了解如何获取这些日期和时间之间的数据..

谢谢。

【问题讨论】:

  • 如果我提供 1/1/2020 0:00:10 到 1/1/2020 0:00:30 则必须获取前三个记录..
  • 请以文本形式提供Minimal, Reproducible Example,而不是图片。
  • 已更正,先生。
  • @MarianD 非常感谢你先生..你能帮我解决我的问题吗?
  • 也许吧。但是你必须在你的问题中提供一个你想要的输出的例子——至少是一个示意图。

标签: python pandas csv


【解决方案1】:
import pandas as pd
dataset = pd.read_csv("Path_to_your_input_dataset")  #Specify your dataset input path here

#Create a new column "DateTime" which concatenates "Date" and "Time" columns and converts the column to pandas DateTime format
dataset['DateTime'] = pd.to_datetime(dataset['Date '] + ' ' + dataset['Time'])

start_date = "2020-01-01 00:00:40" #Provide your start dateTime as input here in the same exact format
end_date = "2020-01-01 00:10:10" #Provide your end dateTime as input here in the same exact format

#greater than the start date and smaller than the end date
mask = (dataset['DateTime'] >= start_date) & (dataset['DateTime'] <= end_date)

#Assign the selected mask to a new dataframe
selected_dataset = dataset.loc[mask]
print(selected_dataset)

输出:

      Date      Time Mode Dir  Reserved  Speed  Enf Speed            DateTime
3  01/01/20  0:00:40    N   R       170    115         70 2020-01-01 00:00:40
4  01/01/20  0:00:50    N   R       170     81         70 2020-01-01 00:00:50
5  01/01/20  0:10:00    N   R       170    127         70 2020-01-01 00:10:00
6  01/01/20  0:10:10    N   R       170     74         70 2020-01-01 00:10:10

干杯!

【讨论】:

  • 还有一件事先生,我想对 Speed 列求和..我正在尝试使用 print(selected_dataset.groupby['Speed'].sum()) 但我收到错误 TypeError:Method 'object'不可下标..请帮助我也
  • print(selected_dataset['Speed'].sum())
猜你喜欢
  • 2022-11-26
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 2023-02-08
  • 2015-06-13
  • 1970-01-01
  • 1970-01-01
  • 2021-01-08
相关资源
最近更新 更多