1. ホーム
  2. Python

ValueErrorです。変数 `x` と `y` のどちらも数値でないように見えます。

2022-02-18 14:49:46
<パス

seaborn プロット入力 x,y 値は実数ではなく、文字列である可能性があり、処理する必要があります。

解決方法

  1. 描画時に名前などの文字列型のカラムを削除することを忘れずに
  2. 数値文字列をfloat型に変換する

2点目について

foo = pd.DataFrame(columns =['Names','Values'])


pandasのバージョンが0.25より大きい
pandas.DataFrame.explode() リストカラムを、値を文字列ではなく実数に変換できる独立したセルに変換します。

foo = foo.explode('Values')
foo['Values'] = foo['Values'].astype('float')
sns.violinplot(data=foo, x='Names', y='Values')


pandasのバージョンが0.25未満

result = foo.explode('Values').reset_index(drop=True)
result = result.assign(Names=result['Names'].astype('category'), 
                       Values=result['Values'].astype(np.float32))

sns_plot = sns.violinplot(x='Names', y='Values', data=result)