前提・実現したいこと
AnacondaのJupiterLabを用いて開発をしています.
目的はヒストグラムの描画です.
list形式の元データをpandas.cutで分離し,得られたものをmatplotlib.histを用いてヒストグラムを描画しようとしています.
発生している問題・エラーメッセージ
matplotlib.histの引数として利用できる型がlistかseriesしかなく,pandas.cutで得られる戻り値の型がこの二つではない
エラーメッセージ TypeError Traceback (most recent call last) <ipython-input-16-5feae93c127a> in <module> 18 #plt.hist(col_values2,bins=40,range=(0,4.0)) 19 burnt = pd.cut(col_values2,[1.7,4.0]) ---> 20 plt.hist(burnt,bins=40,range=(0,4.0)) 21 #df = pd.DataFrame.from_dict(dict) 22 #data = df['burnt'].tolist() ~\anaconda3\lib\site-packages\matplotlib\pyplot.py in hist(x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, data, **kwargs) 2683 orientation='vertical', rwidth=None, log=False, color=None, 2684 label=None, stacked=False, *, data=None, **kwargs): -> 2685 return gca().hist( 2686 x, bins=bins, range=range, density=density, weights=weights, 2687 cumulative=cumulative, bottom=bottom, histtype=histtype, ~\anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, data, *args, **kwargs) 1436 def inner(ax, *args, data=None, **kwargs): 1437 if data is None: -> 1438 return func(ax, *map(sanitize_sequence, args), **kwargs) 1439 1440 bound = new_sig.bind(ax, *args, **kwargs) ~\anaconda3\lib\site-packages\matplotlib\axes\_axes.py in hist(self, x, bins, range, density, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs) 6654 # this will automatically overwrite bins, 6655 # so that each histogram uses the same bins -> 6656 m, bins = np.histogram(x[i], bins, weights=w[i], **hist_kwargs) 6657 tops.append(m) 6658 tops = np.array(tops, float) # causes problems later if it's an int <__array_function__ internals> in histogram(*args, **kwargs) ~\anaconda3\lib\site-packages\numpy\lib\histograms.py in histogram(a, bins, range, normed, weights, density) 834 835 # Only include values in the right range --> 836 keep = (tmp_a >= first_edge) 837 keep &= (tmp_a <= last_edge) 838 if not np.logical_and.reduce(keep): TypeError: '>=' not supported between instances of 'pandas._libs.interval.Interval' and 'int'
該当のソースコード
Python3
1ソースコード 2burnt = pd.cut(col_values2,[1.7,4.0]) 3plt.hist(burnt,bins=40,range=(0,4.0))
試したこと
pandas.cutの戻り値の型をtypeを用いて調べました.
<class 'pandas.core.arrays.categorical.Categorical'>
付随する疑問として上記型はpandasのDataFrameの一種なのかnumpyのarrayの一種なのかがわかりません.
df = pd.DataFrame.from_dict(dict)
data = df['burnt'].tolist()
というコードでDataFrameからlistに変換を試みましたができませんでした.
このことからおそらく上記型(pandas.core.arrays~)はDataFrameではないと考えていますが正解がわかりません.
こちらにもお答えいただけると幸いです.
補足情報(FW/ツールのバージョンなど)
pandasのバージョンは1.1.3です.
回答2件
あなたの回答
tips
プレビュー