【问题标题】:change the date format in a csv file [closed]更改 csv 文件中的日期格式 [关闭]
【发布时间】:2015-07-16 12:26:19
【问题描述】:

我有一个巨大的 CSV 文件,文件中的第 6 列名为 "date" ,我想将此列中条目的格式从它们必须的任何格式更改为 yyyy-mm-dd 格式。

我只知道如何使用 Excel 更改日期格式,但是这个文件太大,无法用 excel 打开。

谢谢

【问题讨论】:

  • 它们是什么格式的?
  • 大部分条目都是dd/mm/yyyy格式
  • @PadraicCunningham:“无论他们采用什么格式”——这就留下了一个问题,即如何决定 05-08-2015 是指“八月五日”还是“五月八日”
  • @Stephan,这就是我问的原因,您可以使用 dateutil 但由于您提到的原因,它可能会给出错误的输出
  • 是的,你说得对,我没有解释清楚,目前的格式是dd/mm/yyyy

标签: python r excel cmd


【解决方案1】:

如果你可以将文件读入R,你可以使用

library(lubridate)
YourData$date <- dmy(YourData$date)
YourData$date <- format(YourData$date, format = "%Y-%m-%d")

如果需要,然后写回文件。

【讨论】:

  • 谢谢,解决了我的问题
【解决方案2】:

不要转换为日期时间,只需拆分 om / 并使用 str.format 交换年份和日期:

import csv
from shutil import move
from tempfile import NamedTemporaryFile
with open("infile", 'rb') as csvfile, NamedTemporaryFile(dir=".",delete=False) as temp:
    w = csv.writer(temp)
    r = csv.reader(csvfile)
    for row in r:
        dt = row[5].split("/")
        row[5] = "{}/{}/{}".format(row[-1],row[1],row[0])
        w.writerow(row)

move(temp.name,"infile")

将更新后的行写入NamedTemporaryFile 并使用 shutil.move 将原始文件替换为修改后的内容。

【讨论】:

    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多