Go语言数据科学-CSV文件处理

主要使用 encoding/csv 来解析 csv 文件。同时简单使用dataframe包更快速地操作CSV文件。

package main

import (
	"fmt"
	"log"
	"os"

	"github.com/kniren/gota/dataframe"
)

func main() {
	// 打开CSV文件
	irisData, err := os.Open("D:/Code/Datasets/iris.csv")
	if err != nil {
		log.Fatal(err)
	}
	// 关闭文件
	defer irisData.Close()

	// 创建一个dataframe
	irisDF := dataframe.ReadCSV(irisData)

	// 展示数据
	fmt.Println(irisDF)

	// 创建一个filter,少选Iris-cersicolor类型的花
	filter := dataframe.F{
		Colname:    "species",
		Comparator: "==",
		Comparando: "Iris-versicolor",
	}
	versicolorDF1 := irisDF.Filter(filter)
	if versicolorDF1.Err != nil {
		log.Fatal(versicolorDF1.Err)
	}

	// 只选择"speal_width"列
	versicolorDF2 := irisDF.Filter(filter).Select([]string{"sepal_width", "species"})
	if versicolorDF2.Err != nil {
		log.Fatal(versicolorDF2.Err)
	}

	// 只展示前三条数据
	versicolorDF3 := irisDF.Filter(filter).Select([]string{"spetal_width", "species"}).Subset([]int{1, 2, 3})
	if versicolorDF3.Err != nil {
		log.Fatal(versicolorDF3.Err)
	}

}

posted @ 2021-08-18 17:35  MRWH7  阅读(460)  评论(0)    收藏  举报