2

我试图弄清楚如何在读取 CSV 文件时dataframe.LoadOptionsgota 库中使用来指定分隔符。

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 函数采用options*dataframe.LoadOptions 类型的变量

我检查了 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)

4

1 回答 1

2

该库使用功能选项

dataframe.ReadCSV 接受任意数量的 dataframe.LoadOption,其中 LoadOption 是一个函数类型。查看文档以查找返回 LoadOption 值并将其传递给 ReadCSV 的内容:

dataframe.ReadCSV(ioContent,
    dataframe.WithDelimiter(';'),
    dataframe.HasHeader(true),
    // etc.
)
于 2018-04-08T10:33:53.903 回答