我有一个文件夹的.csv文件,我想要阅读和转换为一个数据。
我尝试了一个函数来实现这一点:
function read_CSV_all(name_in::String)
folder = joinpath(@__DIR__, "../validation", name_in)
files = glob("*.csv",folder)
dfs = CSV.read.(files,DataFrame)
df = vcat(dfs...)
return df
end但我犯了个错误
ERROR: LoadError: ArgumentError: column(s) ... are missing from argument(s) 4我准备好的每个.csv文件中的列都有不同的长度--这是问题吗?当我返回df (dataframes数组)时,我的函数可以工作,但是我想要一个包含我正在读取的.csv文件的所有列的单一dataframe。
发布于 2021-05-25 14:52:59
列(.)它们都有不同的长度--这可能是问题所在吗?
不是的。vcat进行垂直级联,因此每个单独数据帧中的行数并不重要。
列.从争论中消失4
此错误消息告诉您,要连接的数据帧不具有相同的列。为了允许数据帧中的非匹配列,您可以垂直连接:
vcat(dfs..., cols=:union)或
reduce(vcat, dfs, cols=:union)如果您有大量的数据帧(以避免飞溅),这可能会更好。
https://stackoverflow.com/questions/67690339
复制相似问题