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

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

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

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1376閲覧

教師なし学習においてExcelのデータを三次元以上でk-meansでクラスタリングをしたい

kawasemi29

総合スコア1

Anaconda

Anacondaは、Python本体とPythonで利用されるライブラリを一括でインストールできるパッケージです。環境構築が容易になるため、Python開発者間ではよく利用されており、商用目的としても利用できます。

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/10/18 19:23

Excelのデータをjupyter notebook上で三次元以上でクラスタリングを試みています。

プログラミング初心者で学習中です。
現在Excelに入力したデータを傾向を調査するためにクラスタリングを行っています。
二次元までのクラスタリングは可能なのですが、三次元以上になるとエラーが出てしまい進めません。

発生している問題・エラーメッセージ

TypeError Traceback (most recent call last) <ipython-input-10-4e7c59ecc83b> in <module> 1 import matplotlib.pyplot as plt 2 get_ipython().run_line_magic('matplotlib', 'inline') ----> 3 plt.scatter(data1['商品数量計測時間'], data1['商品個数(%)'], data1['商品値段割引後(税込み)']) 4 plt.xlabel('price') 5 plt.ylabel('time to calculate & Quantity') ~\anaconda3\envs\OpenCV_Face\lib\site-packages\matplotlib\pyplot.py in scatter(x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, edgecolors, plotnonfinite, data, **kwargs) 2893 verts=verts, edgecolors=edgecolors, 2894 plotnonfinite=plotnonfinite, -> 2895 **({"data": data} if data is not None else {}), **kwargs) 2896 sci(__ret) 2897 return __ret ~\anaconda3\envs\OpenCV_Face\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\envs\OpenCV_Face\lib\site-packages\matplotlib\cbook\deprecation.py in wrapper(*inner_args, **inner_kwargs) 409 else deprecation_addendum, 410 **kwargs) --> 411 return func(*inner_args, **inner_kwargs) 412 413 return wrapper ~\anaconda3\envs\OpenCV_Face\lib\site-packages\matplotlib\axes\_axes.py in scatter(self, x, y, s, c, marker, cmap, norm, vmin, vmax, alpha, linewidths, verts, edgecolors, plotnonfinite, **kwargs) 4493 offsets=offsets, 4494 transOffset=kwargs.pop('transform', self.transData), -> 4495 alpha=alpha 4496 ) 4497 collection.set_transform(mtransforms.IdentityTransform()) ~\anaconda3\envs\OpenCV_Face\lib\site-packages\matplotlib\collections.py in __init__(self, paths, sizes, **kwargs) 951 """ 952 --> 953 super().__init__(**kwargs) 954 self.set_paths(paths) 955 self.set_sizes(sizes) ~\anaconda3\envs\OpenCV_Face\lib\site-packages\matplotlib\cbook\deprecation.py in wrapper(*inner_args, **inner_kwargs) 409 else deprecation_addendum, 410 **kwargs) --> 411 return func(*inner_args, **inner_kwargs) 412 413 return wrapper ~\anaconda3\envs\OpenCV_Face\lib\site-packages\matplotlib\collections.py in __init__(self, edgecolors, facecolors, linewidths, linestyles, capstyle, joinstyle, antialiaseds, offsets, transOffset, norm, cmap, pickradius, hatch, urls, offset_position, zorder, **kwargs) 200 self._uniform_offsets = None 201 if offsets is not None: --> 202 offsets = np.asanyarray(offsets, float) 203 # Broadcast (2,) -> (1, 2) but nothing else. 204 if offsets.shape == (2,): ~\anaconda3\envs\OpenCV_Face\lib\site-packages\numpy\core\_asarray.py in asanyarray(a, dtype, order) 134 135 """ --> 136 return array(a, dtype, copy=False, order=order, subok=True) 137 138 TypeError: float() argument must be a string or a number, not 'datetime.time'

該当のソースコード

python

1import pandas as pd 2from sklearn.datasets import load_iris 3 4data = pd.read_excel('data/4_prog.xlsx', sheet_name=2, index_col=0) 5data.head() 6 7import numpy as npy 8import matplotlib.pyplot as plt 9%matplotlib inline 10 11import matplotlib.pyplot as plt 12%matplotlib inline 13plt.scatter(data1['商品数量計測時間'], data1['商品個数(%)'], data1['商品値段割引後(税込み)']) 14plt.xlabel('price') 15plt.ylabel('time to calculate & Quantity') 16```  17 18### 試したこと 19二次元ではうまくいっていたので多次元での書き方などを調べ、いくつか試してみたのですがダメでした。 20また、anaconda側のインストール内容もいくつか見てみましたが問題は判明しませんでした。 21 22 23### 補足情報(FW/ツールのバージョンなど) 24 25おそらく基礎的なところで詰まっていると思いますが、どうぞお手柔らかにご教授いただければ幸いです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

TypeError: float() argument must be a string or a number, not 'datetime.time'

がでる理由はdata1['商品数量計測時間']の型がdatetime.timeになっていることです。

その原因はよくわかりませんが、data/4_prog.xlsxの商品数量計測時間の列の表示形式かもしれませんので、確認してください。

ただし、これを修正しても求めるグラフは描画されません。描きたければ【Matplotlib入門】3D Scatter Plotを試してみるを参考にして、コーディングし直してください。

投稿2021/10/19 01:05

ppaul

総合スコア24670

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

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

kawasemi29

2021/10/19 18:33

詳しくご回答ありがとうございます! また追加のサイトまで教えていただきありがとうございます。 試してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問