Go から別の言語を呼ぶ方法として3つあります。
A. Go だけでその言語を再実装する
https://github.com/goby-lang/goby/
Go で書かれた Ruby (ぽい)言語です。
B. 言語のコードを Go に変換する
トランスパイルという方式です。Grumpy がこれにあたります。Grumpy の場合は、一部 python に寄せたランタイムも作られています。
C. cgo を使ってその言語をライブラリとして呼び出す
言語が提供する埋め込み用のヘッダファイルやライブラリを使って、Go の cgo から呼び出します。
本題
Pandas はC言語で書かれた python3 拡張で書かれています。ですので Go から Pandas を呼び出すには、
ですので、A や B は無理があります。もちろんC言語の部分も合わせて Go に移植するならば話は別ですが。
残るはCですが、go-python を使うのが良いと思います。
https://github.com/sbinet/go-python
go
1package main
2
3import "fmt"
4import "github.com/sbinet/go-python"
5
6func init() {
7 err := python.Initialize()
8 if err != nil {
9 panic(err.Error())
10 }
11}
12
13func main() {
14 gostr := "foo"
15 pystr := python.PyString_FromString(gostr)
16 str := python.PyString_AsString(pystr)
17 fmt.Println("hello [", str, "]")
18}
この様に、Go のコードの中に python の呼び出しを書く事ができるので、Pandas も呼び出せると思います。
ただし、現状 Go から python を呼び出そうとされている理由がわかりませんが、僕であればやろうとされている事を(規模にもよりますが)、Go で書き直すと思います。以下は Pandas の様なデータフレームを扱うライブラリです。
https://github.com/qingtiandalaoye/GoDataframe
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/27 04:19
2017/09/27 04:24
2017/09/27 04:30
2017/09/27 06:02 編集
2017/09/27 06:03
2017/09/27 23:54
2017/11/21 05:29
2017/12/18 22:45