在 Julia 中从文件中读取表格数据
Julia 是一种高级、高性能、动态编程语言,允许用户加载、保存和操作各种类型文件中的数据,用于数据科学、分析和机器学习目的。表格数据是具有表格结构的数据,可以从文本、CSV、Excel 等各种文件中轻松读取。
为了轻松地对数据和文件执行此类操作,我们添加了 Queryverse.jl 包,它为我们提供了其他有用的包(如 Query.jl、FileIO.jl、CSVFiles.jl 等)的易用性。
Julia
# Adding the Queryverse package
using Pkg
Pkg.add("Queryverse")
Julia
# read file contents, line by line
open("geek.txt") do f
# line_number
line = 0
# read till end of file
while ! eof(f)
# read a new / next line for every iteration
s = readline(f)
line += 1
println("$(line-1). $s")
end
end
Julia
# using necessary packages
using DataFrames, Queryverse
# reading dataframe
df = load("marks.csv") |> DataFrame
Julia
# reading data without semicolons
df = load("marks_sc.csv", ';') |> DataFrame
Julia
# reading data without headers
df = load("marks.csv",
header_exists = false) |> DataFrame
Julia
# reading data by changing column names
df = load("marks.csv",
colnames = ["class",
"score"]) |> DataFrame
Julia
# reading data without specific rows
df = load("marks.csv",
skiplines_begin = 1) |> DataFrame
Julia
# reading sheet 1 of an excel file
df = load("marks.xlsx", "Sheet1") |> DataFrame
Julia
# reading by skipping specific rows and columns
df = load("marks.xlsx", "Sheet1",
skipstartrows = 1,
skipstartcols = 1) |> DataFrame
从文本文件中读取表格数据
要从文本文件中读取数据,我们必须首先使用open()函数打开它。要读取文件中的表格数据,我们必须使用readline()函数逐行读取文件中的数据,如下所示:
朱莉娅
# read file contents, line by line
open("geek.txt") do f
# line_number
line = 0
# read till end of file
while ! eof(f)
# read a new / next line for every iteration
s = readline(f)
line += 1
println("$(line-1). $s")
end
end
从 CSV 文件中读取表格数据
DataFrames 用于以表格形式存储数据,这些 DataFrames 可以通过使用Queryverse.jl包和load()函数从 CSV 或 Excel 文件中读取。 Queryverse.jl 包让 FileIO.jl 包使用 CSVFiles.jl 包来实现这一点。
朱莉娅
# using necessary packages
using DataFrames, Queryverse
# reading dataframe
df = load("marks.csv") |> DataFrame
有时在 CSV 文件中,数据由不同的字符(如分号)分隔。
可以在load()函数中指定分号以读取正常表格形式的数据,即没有分号。
朱莉娅
# reading data without semicolons
df = load("marks_sc.csv", ';') |> DataFrame
DataFrame 的列名占据文件的第一行。要改变这一点,我们可以使用header关键字参数并将其等同于 false 以删除列名并将第一行更改为文件中表的元素。
朱莉娅
# reading data without headers
df = load("marks.csv",
header_exists = false) |> DataFrame
在加载文件数据时,我们还可以使用colnames关键字更改列名,如下所示:
朱莉娅
# reading data by changing column names
df = load("marks.csv",
colnames = ["class",
"score"]) |> DataFrame
可以使用skiplines_begin关键字加载来自 CSV 文件的表格数据,而无需特定行数。
朱莉娅
# reading data without specific rows
df = load("marks.csv",
skiplines_begin = 1) |> DataFrame
从 Excel 文件中读取表格数据
从 Excel 表格中读取数据的过程与上面讨论过的 CSV 文件的过程相同,但是我们必须在load()中指定一个扩展名为“*.xlsx”的文件而不是“.csv”函数和我们要阅读的特定工作表。
朱莉娅
# reading sheet 1 of an excel file
df = load("marks.xlsx", "Sheet1") |> DataFrame
我们还可以使用跳过指定行和列的skipstartrows和skipstartcols关键字读取 Excel 文件中数据的特定行和列,如下所示:
朱莉娅
# reading by skipping specific rows and columns
df = load("marks.xlsx", "Sheet1",
skipstartrows = 1,
skipstartcols = 1) |> DataFrame