Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在csv文件的不同日期下对时间集进行分组_Python_Regex - Fatal编程技术网

Python 如何在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',)

您好,我刚刚使用正则表达式从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',),('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日之前