https://qiita.com/thimi0412/items/05cff32279973b0d5599
シェアしました。
関連情報:
DB接続編
https://neovisionconsulting.blogspot.com/2020/02/gopandas-db.html
Golangで扱えるデーターフレーム4種類
https://neovisionconsulting.blogspot.com/2020/02/go4.html
ことの発端
DataFrame
でcsvファイルを処理したいDataFrame
と言ったらpandas
そこでこいつ!
まずは
go get
DataFrameを作る
使用できる型はInt
, Float
, String
, Bool
です
DataFrameを作成する関数
ReadJson
はあんまり使えないので紹介しません(詳しくはGitHubのexampleを)
New(列から作成)
LoadRecords(行から作成)
dataframe.WithTypes
がなくてもDataFrameを作成してくれます(型は指定できませんが)
LoadStruct(Structから作成)
LoadMaps(Mapから作成)
ReadCSV(CSVファイルから作成)
出力はこんな感じ
fmt
パッケージのPrint関数でしか出力できないので注意
データ操作
Select(列を選択)
SubSet(指定した行を取得)
Mutate(列を追加)
RBind(行を結合)
CBind(列を結合)
Set(データの更新)
Arrange(ソート)
Filter(条件に一致した行を取得)
dataframe.F
省略も可能(私はvscodeで書いて、省略をすると警告が出ます)
注意点
Filter
内にdataframe.F
は何個でも条件として指定できるがand
ではなくor
なので注意
andしたい
and
は現状このようにやるしかない
InnerJoin(内部結合)
LeftJoin(外部結合)
LeftJoin
だけ紹介
もちろんOuterJoin
とRightJoin
もあります
番外 DataFrameを扱えるライブラリ
2020年2月6日木曜日
Goでもpandasっぽいことできる!
15:17
No comments
DataFrameの作り方は6つあります
型指定しなくても、ある程度自動で判定してくれます
若干面倒そうだがまぁまぁ
個人的におすすめ、おそらくファイルから読み取る方法以外ではこの方法が一番スマートな方法だと思います
これはちょっとないかな
TSVやスペース区切りもオプションを使用すれば読み込めます
Goには標準でPrint関数がありますが、
列を追加する際、すでに存在するカラム名を指定すればカラムの更新になります
DataFrameの行を結合します。ただしカラム名とカラム数が一致していることが前提です
DataFrameの列を結合します。ただしレコード数が一致していることが前提です
複数キー指定できる
面倒臭い!(時間があればプルリクを投げたい)。
割と簡単
とりあえず
他にもあるなら教えて欲しい!
ハンズラボ Advent Calendar 2018 明日2日目は @watarukura です!
0 コメント:
コメントを投稿