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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Q&A

解決済

2回答

2334閲覧

銀行口座記録のCSVを加工してExcelかGnuplotで表示するためのテキスト処理でおすすめの言語ありますか?

anndonut

総合スコア667

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

0グッド

0クリップ

投稿2017/07/11 12:24

編集2017/07/13 20:09

普段Node.jsを使っています。

Node.jsかawkかperlかpython3かで悩んでいます。
GNUが頑なに守っているAda95も気になります。
Javaは重いのでインストールする気にならないです。

[2017.7.12]
解決しているわけではないので、質問のほうに追記いたします。
銀行口座が複数あって、総資産もグラフ化したいと考えています。
とりあえず、各月の日毎グラフをpngファイルで量産してみることを考えるとExcelよりもGnuplotを使ったほうがよさそう。しかしWindowsでGnuplotを使うのは思ったほど簡単ではなく、OctaveをWindows10にインストールしようとすると、「完全対応でなくバグがあるかもしれませんがよろしいですか?」と言われてしまいました。
VirtualBoxでUbuntuを動かしてGnuplotないしOctaveを使うのがハッピーなのだろうか(Javaが重いという前提が吹っ飛んでしまいますが...)。うまくいけば100% Octaveで記述できて、そうでないにしてもperl5で簡単な処理を行ってGnuplotを子プロセスで複数起動すればいいような気がしますが...

いや、Windows版Gnuplotでもスクリプトファイルを実行することはできるので(標準入力を使ってスクリプトを入力しようとしましたがうまくいきませんでした)、Cygwinのperl5でスクリプトファイルとデータファイルを大量に作成して、wgnuplotを複数回起動すればうまくいくと思います。明日実際に試してみます。

[2017.7.13]
magichanさんのアドバイスに従ってPython(Pandas, matplotlib)を試してみることにしました。

Windows版Anacondaをインストール。ん?Windows版のAnacondaにはbashが入ってなくて、Anaconda Promptを使わなければならない?まじですか!ちょっとプロンプトの使い方を勉強してみます。
ちょっと個人的な都合なんですけどCドライブ(SSD)にプログラムを、Dドライブ(HDD)にデータを入れていたので、ホームがCドライブだと精神的に辛いものがありました。Anaconda Promptの作業フォルダ(プログラムのリンクのプロパティの中にあります)を変更すればホームがDドライブになりました。しかしコマンドプロンプトはcd ~の意味を介してくれない。結構きつい。vimとか使えないんじゃないか?
だめだ。bashもvimも使えないのはちょっときつい。頑張ればCygwinからAnacondaのコマンドを呼び出せるだろうけれども、そこまでする必要があるのだろうか?ちょっと今回は断念して、perl5+wgnuplotのやり方をやってみます。

[2017.7.14]
ちょっと理不尽なことをいうようかもしれないんですけど、Windowsで.msiか.exeを適当に実行して環境を構築できるようじゃないとヤなんですよね。で、Nodistとかはそれができてるわけですよ。Anacondaはちょっと自己完結的()なのがちょっと気に入らないんですよね。で、できれば10年後も同じ手順でインストールできて、あまり言語仕様とかが変わってないほうがいい。つまり枯れてるほうがうれしい。というのがあります。わがまま言ってすみません。
(
)自己撞着を自己完結に直しました。だれかがPythonはプログラマの美徳のうちの傲慢であると言っていましたね。

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

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

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

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

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

guest

回答2

0

ベストアンサー

質問のような用途であれば Python をお勧めしておきます。

Pythonは言わずと知れた汎用スクリプト言語ですが、データ分析の分野では R言語に次いで主流な言語となしております。

その中心に位置するライブラリが Pandas というライブラリになります。
Pandasでは主にデータフレームという2次元テーブルを扱うフレームワークで(2次元以外にも使えるけど)、データの整形から基礎集計までを行うことが出来ます。(ほぼExcelの代わり)
あと金融データによくある、時系列データも問題なく扱えます。

また、要望にある

  • CSV(TSV)やJSONデータの読み込み・書き込み
  • Excelからのデータ読み込み・書き込み

や、その他にも

  • SQLからのデータ読み込み・書き込み

などもサポートしておりますので、データの入出力で困ることは、ほぼ無いかと思います。

次に Pandasと連携して動作するグラフライブラリが matplotlib となります。
(質問に書かれているgnuplotもPythonから使用することは当然可能です。が、個人的にはこちらを使う方がよいと思います。)
matplotlibができることはこちらを見て頂くのが早いと思いますが、大抵のグラフは描画できます。
またpingなどの画像ファイルを出力することも可能です。

その他にもデータ解析ライブラリ(sklearn)や統計モデル(statsmodel)等必要と思われるものはそろっておりますし、汎用言語の特性を生かしてクラウドサービスと連携したり、WEBアプリ化したり、WEB上からデータを集めたりと、最初から最後までをPythonだけで一括して行えるののが大きな利点となります。

あと最後に、最近では公式のPythonのインストーラーの他に、主要なライブラリを一括でインストールできるディストリビューションが幾つか存在します。
その中でもAnaconda はデータ分析関連のライブラリに特化しており、上記のライブラリ群が最初から入っているため簡単に環境構築できます。
もしPythonを導入しようとお思いでした、これを使用することをお勧めしておきます。

投稿2017/07/12 17:41

magichan

総合スコア15898

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

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

anndonut

2017/07/12 20:51

Anacondaは使ったことがあります。Jupyter NotebookはWord+Excelみたいな感じでイモいなーと思ってましたが、gnuplotも案外使いこなすのが難しそうなのでPandasとmatplotlibで頑張ってみるのがスマートかもしれません。今日はPythonのほうをやってみますね。
anndonut

2017/07/12 20:55

関係ないですけど、ニッキー・ミナージュのAnacondaっていいですよね。音楽の趣味が違ってたらすみませんですけど
guest

0

結局、プログラミングせずに済ませることにしました。

私の友人が、マネーフォワードという家計簿のクラウドサービスを勧めてくれて、そのサービスでは僕のしたいことを全部やってくれてるので、それを利用することにしました。

ただ、銀行のCVSデータは過去にさかのぼってダウンロードすることができ、マネーフォワードでも一部の機能では過去データを使用するみたいですが、「資産の時系列推移」というグラフにはマネーフォワードに銀行口座等を登録した日より前の推移は反映されないようになっているようです。マネーフォワードのサポート窓口で確認しました。

また、その友人のアドバイスでは、個人資産管理の関係書物(いわゆる書店の「お金」コーナーにおいてある本)で、できるだけ新しいもの(2年前より古いのはだめらしい)を何冊か読むのがよいとのことでした。今の彼のおすすめは、山崎元の「お金に強くなる」(ハンディー版)とのことでした。私はkindleを常用しているので、山崎元の「図解 山崎元のお金に強くなる!」を読んでますが、読みやすくて面白いです。

過去の資産分析についてはおいおいするかもしれませんが、マネーフォワードや、「お金」の本のフォーマットあるいはメソッドを参考にすると思います。

プログラマにとっては、逃げだと思う人もいるかもしれません。しかし、プログラマにとって最良なのは一行もコードを書かないことだ、と言っていた人が確かいたように思うので、これはこれでよいのではないかと。

以上で終了とさせていただきます。

投稿2017/07/18 11:57

anndonut

総合スコア667

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問