Ошибка значения: ни переменная x, ни переменная y не являются числовыми

#python #matplotlib #seaborn #violin-plot

#python #matplotlib #seaborn #скрипка-сюжет

Вопрос:

В настоящее время пытаюсь создать график скрипки из seaborn пакета. Но всегда получайте указанную ошибку.

Ошибка значения: min() arg — пустая последовательность

Код:

 import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb

table = pd.read_excel("path to the file")
fig, ax = plt.subplots()
fig.set_size_inches(14,5)

df = pd.DataFrame(columns =['Squad','Age'])

df = df.explode('Squad')
df['Squad'] = df['Squad'].astype('float')

ax = sb.violinplot(data = df, x="Squad", y="Age")
plt.xticks(rotation=65)
plt.show()
  

Был бы признателен, если бы кто-нибудь мог помочь. Спасибо.

Редактировать: сделал глупую ошибку. Не включил таблицу в df. Но после включения этого появляется новая ошибка. Когда я добавил .explode() , получил сообщение об ошибке, что он не смог преобразовать его из string в float .

Ошибка x значения: ни y переменная nor не является числовой.

Код :

 import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sb

table = pd.read_excel("G:/Others/football analytics/ageepl.xlsx")
fig, ax = plt.subplots()
fig.set_size_inches(14,5)

df = pd.DataFrame(table, columns =['Squad','Age'])
ax = sb.violinplot(data = df, x="Squad", y="Age")

plt.xticks(rotation=65)

plt.show()
  

Ошибка :

 Traceback (most recent call last):

  File "G:Othersfootball analyticspythonage_violin.py", line 11, in <module>
    ax = sb.violinplot(data = df, x="Squad", y="Age")

  File "C:UsersMAHEanaconda3libsite-packagesseaborncategorical.py", line 2384, in violinplot
    plotter = _ViolinPlotter(x, y, hue, data, order, hue_order,

  File "C:UsersMAHEanaconda3libsite-packagesseaborncategorical.py", line 552, in __init__
    self.establish_variables(x, y, hue, data, orient, order, hue_order)

  File "C:UsersMAHEanaconda3libsite-packagesseaborncategorical.py", line 155, in establish_variables
    orient = self.infer_orient(x, y, orient)

  File "C:UsersMAHEanaconda3libsite-packagesseaborncategorical.py", line 354, in infer_orient
    raise ValueError(no_numeric)

ValueError: Neither the `x` nor `y` variable appears to be numeric.
  

Комментарии:

1. Можете ли вы поделиться полной ошибкой (с трассировкой стека)?

2. @Aziz обновлен, но теперь с новой ошибкой.

3. @JohanC после обновления фрейма данных появляется другая ошибка.

4. Вероятно, вам все еще нужно добавить df['Squad'] = df['Squad'].astype('float') и, возможно, то же самое для 'Age'

5. @JohanC сделал это, получил сообщение об ошибке, в котором говорится, что невозможно преобразовать строку в float