Как я могу прочитать CSV-файл со временем в AM и PM в Юлии - PullRequest
4 голосов
/ 13 апреля 2020

Я использую Julia CSV и пытаюсь прочитать данные с DateTime в форме 10/17/2012 12:00:00 AM, я пытался

dfmt = dateformat"mm/dd/yyyy HH:MM:SS"
data =CSV.File("./Fremont_Bridge_Bicycle_Counter.csv", dateformat=dfmt) |> DataFrame
println(first(data,8))

, но дело в том, что я думаю, что AM и PM делают строку не распознанной как дата, может кто-нибудь помочь показать, как передать это как дату

Ответы [ 2 ]

6 голосов
/ 13 апреля 2020

Вы можете использовать спецификатор p, который соответствует AM или PM. При этом ваш формат даты будет выглядеть следующим образом:

dfmt = dateformat"mm/dd/yyyy HH:MM:SS p"

Вы видите, что синтаксический анализ правильный:

julia> DateTime("10/17/2012 12:00:00 AM", dfmt)
2012-10-17T00:00:00

Чтобы увидеть все возможные символы формата, посмотрите строка документа Dates.DateFormat, которая доступна в REPL через ?DateFormat.

1 голос
/ 13 апреля 2020

с файлом Fremont_Bridge_Bicycle_Counter.csv

N1, N2, fecha
hola, 3, 10/03/2020 10:30:00
pepe, 5, 10/03/2020 11:40:50
juan, 5, 03/04/2020 20:10:12

и с кодом джулии:

using DataFrames, Dates, CSV

dfmt = dateformat"mm/dd/yyyy HH:MM:SS p"
data =CSV.File("./Fremont_Bridge_Bicycle_Counter.csv", dateformat=dfmt) |> DataFrame
println(first(data,8))

дает правильный результат:

3×3 DataFrame
│ Row │ N1     │  N2   │  fecha              │
│     │ String │ Int64 │ DateTime            │
├─────┼────────┼───────┼─────────────────────┤
│ 1   │ hola   │ 3     │ 2020-10-03T10:30:00 │
│ 2   │ pepe   │ 5     │ 2020-10-03T11:40:50 │
│ 3   │ juan   │ 5     │ 2020-03-04T20:10:12 │
...