在 gota 库中使用 dataframe.ReadCSV 时指定分隔符

specify delimiter when using dataframe.ReadCSV in the gota library

我正在尝试弄清楚如何在 gota library 中使用 dataframe.LoadOptions 来指定读取 CSV 文件时的分隔符。

package main

import (
    "fmt"
    "github.com/kniren/gota/dataframe"
    "io/ioutil"
    "strings"
)

func main() {
    content, _ := ioutil.ReadFile("/path/to/csv/file.csv")
    ioContent := strings.NewReader(string(content))

    df := dataframe.ReadCSV(ioContent)

    fmt.Println(df)
}

dataframe.ReadCSV 函数接受类型为 *dataframe.LoadOptions

options 变量

我检查了 dataframe.LoadOptions 结构的定义并发现了以下内容:

type LoadOption func(*loadOptions)

type loadOptions struct {
    defaultType series.Type
    detectTypes bool
    hasHeader bool
    names []string
    nanValues []string
    delimiter rune
    types map[string]series.Type
}

我是 Go 的新手,被困在了这个问题上。我第一次遇到这样的定义:type LoadOption func(*loadOptions)

这个库使用 functional options.

dataframe.ReadCSV 接受 dataframe.LoadOption 中的任意数字 ,其中 LoadOption 是函数类型。查看文档以查找 return LoadOption 值并将其传递给 ReadCSV:

dataframe.ReadCSV(ioContent,
    dataframe.WithDelimiter(';'),
    dataframe.HasHeader(true),
    // etc.
)