Python勉強中

PythonのPandas

今日の米国株は午後1時までの取引でしたが、暴落しましたねー。

そんな中、AMDを少しだけトレードしました。

ドキドキでしたよー😫


さて今日も、「Pythonによるファイナンス 第2版」でPython勉強中。

やっと5章 「Pandasによるデータ分析」 が終わりました。

実はずっと、Pandasってグラフ化するライブラリなんだと思ってました。

だって、「Pandasでグラフできた!」みたいなことを書いている人をよく見かけたのでー。

でもPandasって、タイトルにもあるようにデータ分析するライブラリなんですね。

簡単に言うと、Python版エクセルみたいな感じ。

例えば、エクセルのピボットの機能は、Pandasではgroupby演算がありました。

ただ、Seriesクラス(1次元配列)なんかの紹介があったので、HFTなんかで高速処理が必要なときに威力を発揮するのかなー。


あと、5章の112ページでエラー発生。

本の環境はLinuxでターミナルからMinicondaを使って実行しています。

それに対して私の環境はWindows10でPyCharmのコンソールを使っています。

その環境の違いによるエラーだと思います。

エラーはこんな感じ。

%matplotlib inline
Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2.3\plugins\python-ce\helpers\pydev\pydev_ipython\inputhook.py", line 529, in enable_gui
    gui_hook = guis[gui]
KeyError: 'inline'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_ipython_console_011.py", line 156, in enable_gui
    return real_enable_gui(gui, app)
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2.3\plugins\python-ce\helpers\pydev\pydev_ipython\inputhook.py", line 535, in enable_gui
    raise ValueError(e)
ValueError: Invalid GUI request 'inline', valid ones are:dict_keys(['none', 'osx', 'tk', 'gtk', 'wx', 'qt', 'qt4', 'qt5', 'glut', 'pyglet', 'gtk3'])
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Users\xxxxx\PycharmProjects\test1\venv\lib\site-packages\IPython\core\interactiveshell.py", line 3444, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-6-9e3324102725>", line 1, in <module>
    get_ipython().run_line_magic('matplotlib', 'inline')
  File "C:\Users\xxxxx\PycharmProjects\test1\venv\lib\site-packages\IPython\core\interactiveshell.py", line 2351, in run_line_magic
    result = fn(*args, **kwargs)
  File "C:\Users\xxxxx\PycharmProjects\test1\venv\lib\site-packages\decorator.py", line 232, in fun
    return caller(func, *(extras + args), **kw)
  File "C:\Users\xxxxx\PycharmProjects\test1\venv\lib\site-packages\IPython\core\magic.py", line 187, in <lambda>
    call = lambda f, *a, **k: f(*a, **k)
  File "C:\Users\xxxxx\PycharmProjects\test1\venv\lib\site-packages\IPython\core\magics\pylab.py", line 99, in matplotlib
    gui, backend = self.shell.enable_matplotlib(args.gui.lower() if isinstance(args.gui, str) else args.gui)
  File "C:\Users\xxxxx\PycharmProjects\test1\venv\lib\site-packages\IPython\core\interactiveshell.py", line 3538, in enable_matplotlib
    self.enable_gui(gui)
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2021.2.3\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_ipython_console_011.py", line 158, in enable_gui
    raise UsageError("%s" % e)
IPython.core.error.UsageError: Invalid GUI request 'inline', valid ones are:dict_keys(['none', 'osx', 'tk', 'gtk', 'wx', 'qt', 'qt4', 'qt5', 'glut', 'pyglet', 'gtk3'])

たくさんメッセージが出ていますが、「%matplotlib inline」を実行すると「inline」が気に入らないと言っている様子。

そもそも、このinlineって何?ということですが、どうやら、コンソール内にグラフを表示するということのようです。

でも、PyCharmで本の通りに実行すると、こんなメッセージが表示されます。

from pylab import plt, mpl
Backend TkAgg is interactive backend. Turning interactive mode on.

これは、グラフを表示するTkAggはインタラクティブバックエンドだから、インタラクティブモードをオンにしたと言っているんです。

そして、このインタラクティブモードというのは、グラフを表示するときウィンドウがポップアップで出てくることのようなんですねー。

なので、inlineという引数は必要ないみたい。

%matplotlib

これだけで実行できました。

ポップアップで表示されるグラフはこんな感じ。

明日から6章を読み始めまーす。