質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

0回答

1464閲覧

Go 構造体(データフレーム)と数字を比較する方法が知りたいです。

obahaya

総合スコア1

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2021/10/13 06:55

編集2021/10/18 00:56

前提・実現したいこと

Goのif文において、
構造体(データフレーム)と数値が比較できないため、
どうすれば良いか教えていただきたいです。
データフレームをリストに変更する方法など教えてください。

比較するデータフレームには値は1つしか入っていません。

やりたいことは、
①AからD列・16362行のcsvファイルを読み込む
②C列とD列の値を用いて、【Cが〇以下かつDが〇以下】と条件を指定し(〇の中にはcの場合0
10、Dの場合0~18)、その条件を満たす行(データ)のみを抽出する
③抽出した行(データ)におけるA列の合計値を求める
(「〇以下」の〇の値を一つずつ変えて全通り(11×19通り)の条件において、A列の合計値を求める)
④Aの合計値が23を超える場合のみ、その条件とAの合計値を出力する

発生している問題・エラーメッセージ

invalid operation: score.Capply(mean) > 23 (mismatched types dataframe.DataFrame and int)

該当のソースコード

GO

1package main 2 3import ( 4 "fmt" 5 "log" 6 "os" 7 8 "github.com/go-gota/gota/dataframe" 9 "github.com/go-gota/gota/series" 10) 11 12func main() { 13 f, err := os.Open("sample.csv") 14 if err != nil { 15 log.Fatal(err) 16 } 17 defer f.Close() 18 df := dataframe.ReadCSV(f) 19 for x := 0; x < 11; x++ { 20 for y := 0; y < 19; y++ { 21 filter := df.FilterAggregation( 22 dataframe.And, 23 dataframe.F{ 24 Colname: "C", 25 Comparator: "<=", 26 Comparando: x, 27 }, 28 dataframe.F{ 29 Colname: "D", 30 Comparator: "<=", 31 Comparando: y, 32 }, 33 ) 34 score := filter.Select([]string{"A"}) 35 mean := func(s series.Series) series.Series { 36 floats := s.Float() 37 sum := 0.0 38 for _, f := range floats { 39 sum += f 40 } 41 return series.Floats(sum) 42 } 43 if score.Capply(mean) > 23 { 44 fmt.Println(x, y, score.Capply(mean)) 45 } 46 } 47 } 48}

補足情報(FW/ツールのバージョンなど)

Gotaのデータフレームを用いています。
データフレームには値は1つ(A列の合計値)しか入っていません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kiino

2021/10/15 19:18

`score.Capply` がどういったもので、 数値(23.5)と比較しているのはどういうことをされたいのでしょうか。 やりたいことや、構造体の定義、問題の前後のコードをなどを追記してもらうことって可能でしょうか。 たぶん構造体のあるフィールドと特定の数値を比較することになるのだと思うのですが、 情報が少なくてどのようなことをされたいのか読み取れませんでした。
obahaya

2021/10/18 00:47

コメントありがとうございます! 情報不足過ぎました。。! コードをすべて記載しました! またやりたいことも記載しました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問