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

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

ただいまの
回答率

90.50%

  • CSV

    854questions

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

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

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 721

anndonut

score 250

普段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はプログラマの美徳のうちの傲慢であると言っていましたね。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

質問のような用途であれば 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/13 05:51

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

    キャンセル

  • 2017/07/13 05:55

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

    キャンセル

0

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

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

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

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

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

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

同じタグがついた質問を見る

  • CSV

    854questions

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

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