将.txt作为日期类型读入Julia DataFrame

时间:2015-07-26 13:33:21

标签: dataframe julia

有没有办法直接将日期(“2000-01”)变量从文本文件读入Julia DataFrame作为日期?从我所看到的,没有关于此的文档。

df = readtable("path/dates.txt", eltypes = [Date, Date])

这不起作用,即使看起来应该如此。我通常的过程是以字符串形式读取日期,然后遍历每一行以创建新的日期变量。这已经成为我现在的一些流程的瓶颈,做到了DataFrames的大小。

我通常的做法是做这样的事情:

full_df[:real_date] = Date(full_df[:temp_dte_string], "m/d/y")

谢谢

1 个答案:

答案 0 :(得分:3)

我认为目前没有任何方法可以像您的第一个建议代码那样在一个步骤中进行加载。但是,您可以通过创建一个DateFormat对象并使用它来调用Date而不是使用字符串来加速第二种方法。 (简要提到here。)

dfmt = Dates.DateFormat(“m/d/y”)
full_df[:real_date] = Date(full_df[:temp_dte_string], dfmt)

(出于某种原因,我认为Date没有矢量化,并且在我的所有代码中都在for循环中执行此操作。哎呀。)

删除变量是指删除列还是行?如果你的意思是前者,那么还有其他一些方法可以做到这一点,包括

function vectorin(a, b) #IMHO this should be in base
    bset = Set(b)
    [i in bset for i in a]
end
df = DataFrame(A1="", A2="", A3="", D="", E="", F="") #Some long list of columns 
badCols = [:D, :F] #Some long list of columns you want to remove
df = df[names(df)[!vectorin(names(df), badCols)]]

有时我会阅读包含大量额外列的csv文件,然后只需执行类似

的操作
df = readtable("data.csv")
df = df[[:Only, :the, :cols, :I, :want]]