选择非结构化csv中具有日期的所有行



所以我得到了谷歌趋势查询的输出。它在一张纸上包含多个表格。表单的第一部分看起来像:

Web Search interest: nespresso  
United States; date_range:(today 90-d)  
Interest over time  
Day nespresso
8/7/2015    70
8/8/2015    82
8/9/2015    91
8/10/2015   84

所以我想做的是:忽略前几行,选择任何有日期的行。(自2015年8月7日至2015年8日的每周数据)。当然,read.csv中有nrow和skip,但我想知道是否有系统的方法可以做到这一点。

此外,请记住,来自谷歌趋势的数据包括日期之后的数据。

11/3/2015    
11/4/2015    

Top subregions for nes  
Subregion   nes
New York    100
Massachusetts   83

寻找Python或R解决方案

考虑这个Python解决方案来读取原始csv并将第一列转换为日期。Try/Except用于跳过未正确转换为日期格式的行。

import csv
from datetime import datetime
with open('Unstructured.csv', 'rt') as csvfile:
    csvReader = csv.reader(csvfile)
    data = []
    for row in csvReader:
        try:
            data.append([datetime.strptime(row[0], "%m/%d/%Y").strftime("%Y-%m-%d"), row[1]])
        except ValueError:
            continue
    for i in data:
        print(i)

输出(数据列表)

['2015-08-07', '70']
['2015-08-08', '82']
['2015-08-09', '91']
['2015-08-10', '84']
['2015-11-03', '']
['2015-11-05', '']

最新更新