Dataframe 将.txt作为日期类型读入Julia数据帧

Dataframe 将.txt作为日期类型读入Julia数据帧,dataframe,julia,Dataframe,Julia,有没有办法将日期(“2000-01”)变量作为日期直接从文本文件读入Julia数据框?据我所见,没有关于这方面的文件 df = readtable("path/dates.txt", eltypes = [Date, Date]) 这不起作用,尽管看起来应该这样。我通常的过程是以字符串形式读取数据,然后在每一行上循环创建一个新的日期变量。这已经成为我的一些流程中的一个瓶颈。现在,请注意数据帧的大小 我通常的流程是这样做: full_df[:real_date] = Date(full_df[:

有没有办法将日期(“2000-01”)变量作为日期直接从文本文件读入Julia数据框?据我所见,没有关于这方面的文件

df = readtable("path/dates.txt", eltypes = [Date, Date])
这不起作用,尽管看起来应该这样。我通常的过程是以字符串形式读取数据,然后在每一行上循环创建一个新的日期变量。这已经成为我的一些流程中的一个瓶颈。现在,请注意数据帧的大小

我通常的流程是这样做:

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

谢谢

我认为目前没有任何方法可以像您建议的第一个代码那样一步完成加载。但是,通过创建DateFormat对象并使用该对象而不是字符串调用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]]

此外,我还想知道人们认为从数据帧中删除变量的最佳方法是什么。我倾向于使用删除!(DataFrame,Variable)您当然可以逐行读取文件并以这种方式构造数据帧。有许多数据帧构造函数。我想一本列有列名的词典就可以了。请注意,readlines()在一定的大小(我想这是RAM的一个函数)以上无法工作,所以当我执行类似操作时,我会使用while循环并逐行执行,尽管批处理可能会更快。我注意到,无论出于什么原因,在构建date和datetime对象时都会有一些开销,所以请注意文件是否很大。关于删除变量。你总是可以。
df = readtable("data.csv")
df = df[[:Only, :the, :cols, :I, :want]]