📜  在 Julia 中重塑数据框

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

在 Julia 中重塑数据框

DataFrame 是一种以表格形式保存数据数组的数据结构。我们熟悉Python中的数据框对象和包,包括pandas、matplotlib等。
与 Julia 中的等效方法完全相同,我们使用 pandas.jl 作为封闭函数。我们在 Julia 中也有默认包,它们确实用作数据帧,即 Query.jl、DataFramesMeta.jl

在 Julia 中构建数据框

正如我们所知,数据框用于表示表格结构并将值存储在列中。每列由用户定义的关键字参数组成。现在让我们从在 Julia 中构建一个基本的数据框开始。

# Julia program to create a Data Frame
  
# Loading Library
using DataFrames
  
# Creating a Data frame
data = DataFrame(A = [31, 22], B = [3.0, missing], C = ["P", "N"])

输出:

现在我们已经创建了一个 2×3 阶的 DataFrame,它存储在一个名为“data”的变量中,我们还可以感知到数据存储在表格组合中。让我们了解 DataFrame 内部的结构化数据。

这里 A、B 和 C 列充当关键字。

  • “A”列包含整数值。
  • “B”列包括浮点数和缺失值。
  • “C”列包含一个字符串字符。

对 DataFrame 的操作

现在让我们了解 Julia 中的一些操作。

# Julia program to create a Data Frame
  
# Loading Library
using DataFrames
  
# Creating a Data frame
data2 = DataFrame(A = 1:8, B = ["M", "F", "F", "M", "F", "M", "M", "F"],
                           C = ["T", "F", "T", "T", "F", "T", "F", "F"])

在这里,另一个 Dataframe 被创建并存储在变量“data2”中。

头部函数

此操作演示了 DataFrame 的头部

# Demonstrating Head of Data Frame
x = head(data2)

对于上面创建的DataFrame,我们已经进行了head操作。它显示数据框中的最高值。
输出:

尾函数

此操作显示 DataFrame 的尾部。

# Demonstrating Head of Data Frame
y = tail(data2)

对于上面创建的 DataFrame,我们已经执行了尾部操作。它显示数据框中最底部的值。
输出:

行和列操作
# Printing specific rows and columns
  
# Using Row and column operation
z = data2[1:4, :]
s = data2[1, :]

上面的代码代表了行列操作。

  • “,”(逗号)左侧的数字表示要包含的行数。
  • “,”(逗号)右侧的数字表示要包含的列数。
  • 在第一个变量(即 z)中,我们正在访问范围为 1-4 的行。这里的重要部分是在逗号运算符的右侧有一个冒号(“ :”),表示要包含的所有列。
  • 在第二个变量(即 s)中,我们只定位包含所有列的第一行。

输出:

在 Julia 中重塑 DataFrame

重塑 Dataframe 包括堆栈函数。以更精确的形式对数据进行操作和检索。

using DataFrames
data3 = DataFrame(number = [1, 2, 3, 4, 5, 6, 7, 8], 
                  id1 = [1, 1, 2, 2, 2, 3, 3, 3], 
                  type = ["dog", "dog", "cat", "cat", 
                          "cat", "fish", "fish", "fish"])

在上面的代码中,我们创建了一个具有 3 列和 8 行的数据框,编号在“number”列中给出,“id”为每个“type”给出(即,id “dog” = 1,id “cat” = 2, id “fish” = 3) 分别在 id1 和 type 列中。

输出:

让我们看看使用上面声明的 DataFrame 使用“stack”函数的重塑属性。

# Reshaping the Data Frame
a = stack(data3, [:type, :id1], :number)

输出:

通过对比上面两张图,我们得出结论:

  • 在 Stack函数中,我们需要传递存储 DataFrame 的变量
  • 因此,我们正在对上面创建的 DataFrame 执行重塑操作,并将其存储在变量“data3”中
  • 在声明变量之后,考虑到“type”和“id”列以行格式显示为字符串,导致操作操作。
  • 因此重复数字列值两次。
  • 我们现在可以在使用 stack 函数执行 reshape 操作后可视化 DataFrame 的顺序为 16×3。

从数据框中删除行

要在 Julia 中删除行,我们使用一个名为deleterows!()的函数。它将数据框名称和行索引作为参数。

# Deleting rows from a data frame
  
# Calling deleterows!() Function
doc = deleterows!(data3, 6:8)

解释:

  • 正如我们在上面创建了一个 DataFrame 并将其存储在一个变量“data3”中
  • 因此,我们对相应的 DataFrame 执行了删除操作。
  • 在上面的代码中,我们使用函数deleterows 删除了第 6 行和第 7 行 (n : (n-1))!并将结果存储在“doc”变量中。

输出:

结论

片刻之后,我们最终发现了 Julia 中的 DataFrames 到底是什么,并了解了所有程序并完成了数据操作。在本文中,我们主要介绍了重塑数据和删除操作。