以CSV格式替换日期列的数据

时间:2015-06-12 21:01:37

标签: python csv

从CSV文件中,我有一列日期(yyyy-mm-dd)。 为了获得数年的数据快照,我想通过将日期数据从yyyy-mm-dd截断到yyyy来每年对数据进行分类。

例如,如果我想要编辑" datecolumn"来自"表" (所以table.datecolumn),我如何使用替换功能?或者还有另一种方式吗?

2 个答案:

答案 0 :(得分:1)

也许这会帮助你开始......

import csv
import datetime

date_column_index = 1
with open('infile.csv','rb') as infile, open('outfile.csv','wb') as outfile:
    csvr = csv.reader(infile, delimiter=',')
    csvw = csv.writer(outfile, delimiter=',')
    for row in csvr:
        temprow = row
        temprow[date_column_index] = datetime.datetime.strptime(temprow[date_column_index],'%Y-%m-%d').strftime('%Y')
        csvw.writerow(temprow)

它假定没有标题。

datetime.datetime.strptime使用格式为'YYYY-MM-DD'的csv输入创建一个日期时间对象,然后strftime输出一个只有'YYYY'的字符串。

Here更多关于strptime / strftime格式化。

答案 1 :(得分:0)

您可以直接在Excel中执行此操作。我希望指定日期输入格式和指定日期输出格式一样容易,但幸运的是它只是one concise line

在单元格decodeURI("https://www.google.com/?q=%D0%B0%D0%B1%D0%B2") //returns https://www.google.com/?q=абв 中:

A2

在单元格08-Feb 中:

B2

这会获取=DATEVALUE(RIGHT(A2,3)&"-20"&LEFT(A2,2)) 单元格A2 - 大多数RIGHT字符,为其添加3,然后添加-单元格A2最近LEFT个字符,用于创建2函数识别的字符串:

DATEVALUE

然后它可以将日期解析为实际日期,并进行各种过滤,排序和比较等。然后,您可以填写以创建完整的已分析日期列,并使用它来替换原始列或保持两列完整。