我试图弄清楚如何在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)
答案 0 :(得分:2)
此库使用functional options。
dataframe.ReadCSV接受任何数量的dataframe.LoadOption,其中LoadOption是一种函数类型。查看文档,了解返回LoadOption值的内容并将其传递给ReadCSV:
dataframe.ReadCSV(ioContent,
dataframe.WithDelimiter(';'),
dataframe.HasHeader(true),
// etc.
)