【问题标题】:Return data type DataFrame返回数据类型 DataFrame
【发布时间】:2021-01-16 20:25:57
【问题描述】:

我有一个数据框

import (
    "context"
    "errors"
    "fmt"

    dataframe "github.com/rocketlaunchr/dataframe-go"
    "io"
    "log"
    "net/http"
    "os"
    "time"

    "github.com/rocketlaunchr/dataframe-go/imports"
)

我的主要功能之外

func readFile(fileName string) *Return datatype* {
    covidData, err := os.Open(fileName)
    if err != nil {
        log.Fatal(err)
    }
    dataFrame, err := imports.LoadFromCSV(ctx, covidData)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Read file CSV")
    return (dataFrame)
}

我需要将dataFrame数组返回给主函数,我不知道我是否必须用*指针来做。

此外,在主函数中,我必须初始化该数据框。

编辑 1: 我将返回值添加到 dataframe.DataFrame

func readFile(fileName string) *dataframe.DataFrame {
    covidData, err := os.Open(fileName)
    if err != nil {
        log.Fatal(err)
    }
    dataFrame, err := imports.LoadFromCSV(ctx, covidData)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Read file CSV")
    // fmt.Println("Printing data Frame")
    // Print The whole table
    //fmt.Println(dataFrame)
    fmt.Println("dataFrame", reflect.TypeOf(dataFrame))
    prnNumLst(dataFrame.Names())
    return dataFrame
}

感谢大家,似乎工作正常

【问题讨论】:

  • 有没有可能你忘记在你的帖子中包含主要功能代码?我问是因为你写了“在主函数中我还必须初始化那个数据框。”
  • 是的,对不起。我虽然这无关紧要。 ``` func main() { startUpmsg() getFileName() fmt.Println(fileName) downloadFileCheck(URL, fileName) readFile(fileName) } ```

标签: go


【解决方案1】:

TL;DR
func readFile(fileName string) 的返回类型应该是*dataframe.DataFrame

推理
您使用 imports.LoadFromCSV(...) 函数加载 CSV 文件并希望返回结果数据框。 github.com/rocketlaunchr/dataframe-go 的 API 文档显示,LoadFromCSV 函数指向您的数据帧:*dataframe.DataFrame

在此处查看文档documentation of LoadFromCSV

func LoadFromCSV(ctx context.Context, r io.ReadSeeker, options ...CSVLoadOptions) (*dataframe.DataFrame, error)\

LoadFromCSV 将从 csv 文件加载数据。

【讨论】:

  • 谢谢,我也尝试过,但出现此错误 ``` ./main.go:102:2: cannot use dataFrame (type *dataframe.DataFrame) as type dataframe.DataFrame in return argument ```
  • 嘿,你忘了dataframe.DataFrame前面的星*。
  • 不客气。请不要忘记接受我的回答作为您问题的解决方案。这样大家就可以看到问题解决了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
  • 2019-02-15
  • 2012-01-13
  • 2018-11-09
  • 2022-07-20
相关资源
最近更新 更多