Python 如何在csv文件的不同日期下对时间集进行分组
您好,我刚刚使用正则表达式从csv文件中获取了一组时间和日期数据:Python 如何在csv文件的不同日期下对时间集进行分组,python,regex,Python,Regex,您好,我刚刚使用正则表达式从csv文件中获取了一组时间和日期数据: datePattern = re.compile(r"(\d+/\d+/\d+\s+\d+:\d+)") for i, line in enumerate(open('sample_data.csv')): for match in re.finditer(datePattern, line): date.append(match.groups()); 输出为[('30/06/2016 08:30',)
datePattern = re.compile(r"(\d+/\d+/\d+\s+\d+:\d+)")
for i, line in enumerate(open('sample_data.csv')):
for match in re.finditer(datePattern, line):
date.append(match.groups());
输出为[('30/06/2016 08:30',),('20/07/2016 09:30',),
('30/06/2016 07:30',)
如何将其转化为有用的信息,例如在同一日期下列出所有时间,例如[('30/06/2016 08:30',07.30),]试试这个正则表达式:
r"(\d+/\d+/\d+)\s+(\d+:\d+)"
下面,我使用了列表字典来进行这种分组
import re
datePattern = re.compile(r"(\d+/\d+/\d+)\s+(\d+:\d+)")
dateDict =dict()
for i, line in enumerate(open('sample_data.csv')):
for match in re.finditer(datePattern,line):
if match.group(1) in dateDict:
dateDict[match.group(1)].append(match.group(2))
else:
dateDict[match.group(1)] = [match.group(2),]
print(dateDict)
它将输出如下:
{'10/10/1990': ['12:20', '11:20'], '10/10/1991': ['16:20', '16:20']}
Tested with python 3+
给我们一些输入格式和所需输出格式的示例考虑使用内置模块解析csv,而不是重新发明轮子。我已经用详细说明更新了我的问题。你能给我更多关于如何使用内置csv模块来实现我的目标的想法吗?关于如何对dict中的日期排序的想法吗?这样2016年7月1日就可以了e 2016年6月26日之前