📜  在 Julia 中从文件中读取表格数据

📅  最后修改于: 2022-05-13 01:54:37.755000             🧑  作者: Mango

在 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


我们还可以使用跳过指定行和列的skipstartrowsskipstartcols关键字读取 Excel 文件中数据的特定行和列,如下所示:

朱莉娅

# reading by skipping specific rows and columns
df = load("marks.xlsx", "Sheet1",
               skipstartrows = 1,
               skipstartcols = 1) |> DataFrame