Error pandas y matplotlib could not convert string to float

publicado por: Anonymous

Estoy tratando de dibujar en un gráfica los precios de celular según sus modelos

Por ahora tengo esto

import pandas as pd
import csv
import matplotlib.pyplot as plt
import matplotlib.dates as mdates

df1 = pd.read_csv('MercadoLibreMejor_items.csv')
print(df1)


x = df1['Modelo']
y = df1['Precio']

#plot
plt.plot(x,y)


plt.show()

La lectura del csv es correcta pero al momento de dibujar la gráfica me tira el siguiente error:

ValueError: could not convert string to float: Pixi 3 (4)

Creo que es porque en la columna de Modelo es un string pero no sabría como formatearla a float

solución

No se si es la gráfica más descriptiva para mostrar esto, pero el problema es que, como es lógico, necesitas aportarle puntos con sus coordenadas x e y para obtener la gráfica. La solución es usar un rango de enteros desde 0 hasta el número de elementos que tengas (modelos de teléfonos en este caso) y usarlos para graficar.

Posteriormente cambiamos las marcas que debe mostrar el eje x para que muestre los nombres de los modelos. En este caso podemos usar el índice del dataframe como valor de x y el precio para y.

import pandas as pd
import matplotlib.pyplot as plt


df1 = pd.read_csv('MercadoLibreMejor_items.csv', sep = ';')


fig, ax = plt.subplots(1,1) 
x = df1.index
y = df1['Precio']

ax.set_xticks(x)
ax.set_xticklabels(df1['Modelo'], rotation='vertical', fontsize=10)

plt.plot(x,y)
plt.tight_layout()
plt.show()

Salida:

introducir la descripción de la imagen aquí

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *