Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

264
Vistas
Eliminar los valores de NaN de los datos en D3.js

Aquí está mi código:

 d3.csv('stockdataToPlot.csv', function(d){ return {date : d3.timeParse("%Y-%m-%d")(d.Date), aapl : d.AAPL, aapl_sma: d.SMA_AAPL, tsla : d.TSLA, tsla_sma: d.SMA_TSLA} }).then(plot_data);

Me gustaría eliminar los valores de NaN de d.SMA_AAPL y d.SMA_TSLA . Agradecería que alguien me ayudara a incorporar este ejemplo correctamente:

 d3.csv('stockdataToPlot.csv', function(d){ var data = d.filter(function(e){ if(isNaN(e.value)){ return false; } e.value = parseInt(e.value, 10); return true; }); return {date : d3.timeParse("%Y-%m-%d")(d.Date), aapl : d.AAPL, aapl_sma: data.SMA_AAPL, tsla : d.TSLA, tsla_sma: data.SMA_TSLA} }).then(plot_data);

El error actual es TypeError: d.filter is not a function . Lo cual es confuso porque .filter toma una matriz de datos como parámetro, que debe ser d como se menciona en la primera línea.

Esta es una buena línea compacta de código de la documentación: const result = words.filter(word => word.length > 6); ¿Cómo se adapta esto? var data = d.filter(?? => ??.isNan(??)); ?

Estoy seguro de que estoy pensando demasiado en esto, pero soy nuevo en javascript y no entiendo completamente cómo funciona. En python pandas simplemente haría data.dropna() :(

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Fijado:

 d3.csv('stockdataToPlot.csv', function(d){ function removeNaN(e,c){ if(e>0){return e}else{return c} } return {date : d3.timeParse("%Y-%m-%d")(d.Date), aapl : d.AAPL, aapl_sma: removeNaN(+d.SMA_AAPL,d.AAPL), tsla : d.TSLA, tsla_sma: removeNaN(+d.SMA_TSLA,d.TSLA)} }).then(plot_data);

En mi caso, el NaN se registraba como "", que por defecto es 0 cuando se pasa con un +. Afortunadamente, no tenía ningún valor en mis datos menor o igual a 0. En lugar de eliminarlos, los reemplacé con los mismos valores que el cierre, ya que es solo un promedio móvil. No es lo ideal, pero está bien por ahora.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda