環境
OS: Windows7
Python3.6.1
pandas 0.24.1
pandastable 0.11.0
pandastableとは
Tkinterに表を提供するモジュール。
下記がイメージ
列のラベルクリックでソートしたり、右っかわのボタンポチポチでcsvインポートも出来るみたい。便利そう。
importでハマった
次のようにTableというpandastableのコア機能をインポートしようとするとエラーが返される。
from pandastable import Table
In [1]: import pandastable
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-cb580b341da5> in <module>()
----> 1 import pandastable
C:\Python36\site-packages\pandastable\__init__.py
dule>()
3 import matplotlib
4 matplotlib.use('TkAgg')
----> 5 from .core import *
6 from .data import *
7 __version__ = '0.11.0'
C:\Python36\site-packages\pandastable\core.py
i>()
40 from .data import TableModel
41 from .headers import ColumnHeader, RowHeader, IndexHeader
---> 42 from .plotting import MPLBaseOptions, PlotViewer
43 from .prefs import Preferences
44 from .dialogs import ImportDialog
C:\Python36\site-packages\pandastable\plotting.py
dule>()
31 import numpy as np
32 import pandas as pd
---> 33 from pandas.tools import plotting
34 import matplotlib as mpl
35 #mpl.use("TkAgg")
ModuleNotFoundError: No module named 'pandas.tools'
pandas.toolsが無いとのことだけど、私はpandas.toolsを使ったことが無かったのでなんのこっちゃか分からなかったが、pandasの古いバージョンのモジュールのようだ。
解決策
pandastableのplotting.pyを直接いじくって下記のようにする
from __future__ import absolute_import, division, print_function
try:
from tkinter import *
from tkinter.ttk import *
except:
from Tkinter import *
from ttk import *
import types, time
import numpy as np
import pandas as pd
#from pandas.tools import plotting ← コメントアウトする
from pandas import plotting # ← 新たに加える
import matplotlib as mpl
めでたし