library.前回の続きです。NimDataでNimDataをインポートしたら、さっそく挙動を確かめてみましょう。例によってPythonコードを先に書き、同じような動作ができるか確かめてみます。編集して表示させるだけです。これが思いの他手こずりました。文字コードをCP932(Shift-JIS)でCSVファイルを読み込み、データフレームオブジェクトにする。事業所と事業所の読み仮名と住所を、事業所フラグを頼りに抽出してオフィスリストととして抜き出す。UTF-8にエンコードして、CSVファイルとして書き出す。sec"""凄く快適で、速く、やりたいことが直感的にできます。intuitively.ここまでをNimのコードに直してみます。参考にさせて頂いたサイトは以下に貼り付けます。to.Python使いで『今後はデータビジネスの現場かも』って人、NimData/Arraymancerをさわってみておこう。NimDataモジュールをインポートします。take()はどうやらPandasでいうhead()の役割らしい。一回目のコンパイルと実行。sec"""データフレームにして、オペレーションをしようとしました。sec"""めっちゃ文字化けしてます。文字コードが違うからしょうがないです。本家のページに文字コードのオプションが見当たりません。CSVから情報を読み込み、ヘッダー情報だけ変数のように表示させてテキスト保存。UTF8に直して保存。してからやってみます。ああ、神様仏様Pandas様。regexはnimbleでインポート可能、標準装備のreでもいいよ。`$`という謎の文字はオブジェクトの文字列表現(まあ文字コードだと思って頂いて、)を取ってきてくれる。ヘッダー情報を入れる為の空の配列(文字列が入る)を用意。ヘッダーのみ抽出したいので、カウンターを用意。break文(途中脱出ができる)を効かせるためにblock文を用意。型指定が面倒くさいが、できるだけ楽をしたいのでこんな有様に。他のコラムに使えません。一回きりの限定商品です。これを標準出力からコピペして最後のカンマだけ外す。リダイレクトでテキストファイルに書き出して、コピペ。result"""schema.txt->intCol("住所CD"),intCol("都道府県CD"),intCol("市区町村CD"),intCol("町域CD"),intCol("郵便番号"),intCol("事業所フラグ"),intCol("廃止フラグ"),strCol("都道府県"),strCol("都道府県カナ"),strCol("市区町村"),strCol("市区町村カナ"),strCol("町域"),strCol("町域カナ"),strCol("町域補足"),strCol("京都通り名"),strCol("字丁目"),strCol("字丁目カナ"),strCol("補足"),strCol("事業所名"),strCol("事業所名カナ"),strCol("事業所住所"),floatCol("新住所CD"),"""これを貼り付けて再度挑戦。.map()はPnadasのMapメソッドのようなものです。ここでは、record、一列ごとに取り出して、record.projectToで列名を指定して、その列だけ取り出します。.filter()はPandasのquery()のようなものです。==や!=等の論理演算で条件に一致した行を取り出していきます。最後にまた列を指定して、officeオブジェクトに格納します。awesome!文字化けもしていないし、HTMLファイルで書き出しの結果も悪くはない。列が「;」で区切られていて、文字列は「”」で区切られている。Nimで書くだけでどれだけ速くなるか試してみたかったのです。Nim.Pandasは計測結果に影響を及びませんでした。それはPandasがNumpyで作られていることに起因するからです。Numpy.それでは、実際にありそうな文字列操作や計算でどのくらい差がでるのかやっていきます。halfここでは東京都の緯度経度の情報を使用します。利用規約に同意して、ダウンロードしてくだちぃ。どちらがどの程度の速度で計算を終えるかを見ていきます。fast.もちろんPythonはNumpyもPandasも使用しません。Pandas.ただ、正直前処理がしんどいので、一旦Pandasで前処理を行って、JSONファイルにします。Nimは学習2日目なので、よく分かりません。アホみたいにFor文でやることになりそうです。started!と、いきたいところですが、今日は寝ます。リストを使った方法で途中経過6000秒。辞書だと途中経過120秒。