加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱故事小小网_铜陵站长网 (http://www.0562zz.com/)- 视频终端、云渲染、应用安全、数据安全、安全管理!
当前位置: 首页 > 云计算 > 正文

Go 中的数据分析——如何运用 Gota 包

发布时间:2022-07-16 11:24:55 所属栏目:云计算 来源:互联网
导读:数据分析是过滤、操纵和处理原始数据和数据集以从中获得洞察力的过程。 Python 和 R 通常是数据分析的首选语言。但是这些天,Go 正为此目的而变得越来越流行。 在本教程中,我们将介绍 Gota(Go 中的数据分析包)及其核心功能和用途。 先决条件 了解 Golang
  数据分析是过滤、操纵和处理原始数据和数据集以从中获得洞察力的过程。
 
  Python 和 R 通常是数据分析的首选语言。但是这些天,Go 正为此目的而变得越来越流行。
 
  在本教程中,我们将介绍 Gota(Go 中的数据分析包)及其核心功能和用途。
 
  先决条件
  了解 Golang 中的函数式编程。
  安装了 Go 的 Golang IDE(我使用 Goland 和 Go 1.17.6,但您可以使用其他任何版本)
  什么是戈塔?
  Gota 是 Go 编程语言的数据框和数据整理模块。
 
  Gota 类似于 Python 中的 Pandas 库,并且是为与 Gonum 接口而构建的, Gonum 是 Golang 中的一个科学计算包,就像 Pandas 和 Numpy 一样。
 
  Gota 模块使 Go 中的数据整理(转换和操作)操作变得非常容易。它适用于 Go 内置数据类型和各种文件格式,如 JSON、CSV 和 HTML。
 
  以下是我们将介绍的内容:
  哥达系列。
  得到数据框。
  将文件作为数据框读取。
  Gota 数据帧上的操作。
  导出和保存文件。
  如何开始使用 Gota
  安装 Gota 很容易。将以下命令粘贴到您的终端中:
 
  go get -u https://github.com/go-gota/gota
  这应该会输出成功的安装消息。如果没有,请将您的 Golang 更新到较新的版本并重试安装。
 
  基本的 Gota 概念
  数据框
  在深入研究之前,让我们先了解一些 Gota 基础知识:
 
  数据集是数据的集合,表格或其他形式。
 
  数据框是将数据组织成二维(行和列)表的数据结构,通常用于分析目的。
 
  系列是属于数据框的一维数据的集合。
 
  请注意,这DataFrame是本文中用作示例的数据框对象的变量名称。
 
  什么是戈塔系列?
  import "github.com/go-gota/gota/series"
  Gota 系列是使用series.New复合数据类型(如切片和地图)的方法创建的。
 
  对于切片,[series.New](http://series.New)接受三个参数:切片、系列类型(要包含在系列中的元素的类型)和列名。
 
  series.New([]string{"z", "y", "d", "e"}, series.String, "col")
  系列也可以通过将键初始化为类型series并使用 Type 方法插入系列类型来从映射中创建。
 
  a := map[string]series.Type{
   "A": series.String,
   "D": series.Bool,
   }
  这些切片可以传递到数据帧中以进行进一步的操作和操作。
 
  什么是 Gota 数据框?
  Dataframe 函数包含在 Gota 中的 dataframe 子模块中。
 
  import "github.com/go-gota/gota/dataframe"
  数据帧是其他数据结构的数据结构。本质上,它们将数据格式化为二维表,以便您可以操作这些数据。因此,要使用数据帧,我们需要读取其他数据结构和数据类型。
 
  我们将在本教程中阅读系列、结构、JSON 和 CSV 文件。
 
  如何将系列转换为数据框对象
  您可以使用该方法将一个系列或一组系列转换为数据框对象[dataframe.New](http://dataframe.New)。它以系列作为参数。
 
  dataFrame := dataframe.New(
   series.New([]string{"a", "b", "c", "d", "e"}, series.String, "alphas"),
   series.New([]int{5, 4, 2, 3, 1}, series.Int, "numbers"),
   series.New([]string{"a1", "b2", "c3", "d4", "e5"}, series.String, "alnums"),
   series.New([]bool{true, false, true, true, false}, series.Bool, "state"),
   )
 
  fmt.Println(dataFrame)
  输出:
 
  alphas   numbers alnums   state
   0: a        5       a1       true
   1: b        4       b2       false
   2: c        2       c3       true
   3: d        3       d4       true
   4: e        1       e5       false
      <string> <int>   <string> <bool>
  结构类型的数据框
  您可以使用结构来创建数据框。
 
  type Dog struct {
   Name     string
   Colour      string
   Height  int
    Vaccinated  bool
  }
 
  dogs := []Dog{
   {"buster", "black", 56, false},
   {"jake", "white", 61, false},
   {"bingo", "brown", 50, true},
   {"gray", "cream", 68, false},
  }
 
  dogsDf := dataframe.LoadStructs(dogs)
  fmt.Println(dogsDf)
  您可以通过创建 struct 类型的实例切片并使用dataframe.Loadstructs接收切片的方法创建数据帧来做到这一点。
 
  输出:
 
  Name     Colour   Height Vaccinated
   0: buster   black    56     false
   1: jake     white    61     false
   2: bingo    brown    50     true
   3: gray     cream    68     false
      <string> <string> <int>  <bool>
  如何在 Gota 中查询数据框
  当我们有一个数据框对象时,我们可以使用各种方法查询它以获取有关数据框组成的信息。
 
  dataFrame.Dims()→ 输出数据框对象的维度。
  dataFrame.Types()→ 输出构成数据帧的数据类型。
  dataFrame.Names()→ 输出数据框的列名。
  dataFrame.Nrow()→ 输出行数。
  dataFrame.Ncol()→ 输出列数。
  如何查询列
  Gota 数据框列附带了许多方法,可帮助查询列值。
 
  .IsNaN()→ 检查它是否为空列。
  .Mean()→ 返回列的平均值。
  .Copy()→ 创建列的新副本。
  .HasNaN()→ 检查列中是否有空值。
  .Records()→ 返回列中的值。
  aCol := dataFrame.Col("column_name") //selects a column
  fmt.Println(aCol.HasNaN)
  如何将文件读入数据框对象
  JSON 和 CSV 字符串可以分别传递给dataframe.ReadJSON和dataframe.ReadCSV。
 
  如何读取 JSON 字符串
  JSON 字符串变量作为参数传递给dataframe.ReadJSONusingstrings.NewReader返回缓冲的 JSON 字符串。
 
   jsonString := `[
    {
      "Name": "John",
      "Age": 44,
      "Colour": "Red",
      "Height(ft)": 6.7
    },
    {
      "Name": "Mary",
      "Age": 40,
      "Colour": "Blue",
      "Height(ft)": 5.7
    }
  ]`
 
   dataRead := dataframe.ReadJSON(strings.NewReader(jsonString))
   fmt.Println(dataRead)
  }
  如何读取 CSV 字符串
  在这里,我们有 CSV 格式的相同字符串:
 
  import (
   "fmt"
   "github.com/go-gota/gota/dataframe"
   "strings"
  )
 
   csvString := `
   Name, Age, Colour, Height(ft)
   John,44,Red,6.7
   Mary,40,Blue,5.7`
 
   dataRead := dataframe.ReadCSV(strings.NewReader(csvString))
   fmt.Println(dataRead)
  输出:
 
  Name      Age   Colour   Height(ft)
  0: John   44    Red      6.700000
  1: Mary   40    Blue     5.700000
  如何读取 CSV 文件
  这是 CSV:
 
  Name,Age,Colour,Height(ft)
  John,44,Red,6.7
  Mary,40,Blue,5.7
  Esther,35,Black,4.9
  Jason,36,Green,5.2
  您可以通过读取包含[os.Open](http://os.Open)文件名的文件来读取 CSV 文件。defer file.Close()是一个上下文管理器,它可以帮助我们在程序运行后关闭文件以防止数据丢失。

(编辑:我爱故事小小网_铜陵站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读