J'ai deux dataframes que j'ai créées en utilisant des pandas. Si vous regardez le graphique ci-dessous, vous pouvez voir que mes deux trames de données suivent à peu près le même modèle de données. Je veux que les pandas me disent quand mes données tombent en dehors d'un certain paramètre. Par exemple: disons que je voulais savoir quand sur l'axe des x les données sont inférieures à 2 ou supérieures à 4 sur l'axe des ordonnées. Je sais que je peux obtenir des pandas pour éliminer les valeurs aberrantes en utilisant une courbe d'écart-type et je suis également capable d'imprimer les valeurs aberrantes dans un fichier Excel. Mais cela ne fonctionnera pas pour ces données, je ne veux pas supprimer les données que je veux juste savoir où sont toutes les valeurs aberrantes. J'ai essayé de créer un index booléen comme ceci df4[(df4 < 2) | (df4 > 4)]
mais cela efface simplement les valeurs de données inférieures à 2 et supérieures 4. Ma question est la suivante: Comment puis-je configurer mon propre paramètre pour déterminer les valeurs aberrantes en utilisant des pandas sans supprimer les données?Créer un paramètre personnalisé pour trouver des valeurs aberrantes dans la zone de données pandas
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn
plt.style.use("dark_background")
plt.style.use("seaborn-bright")
x4 = (e[0].time[:47172])
y4 = (e[0].data.f[:47172])
x6 = (t[0].time[:47211])
y6 = (t[0].data.f[:47211])
df4 = pd.DataFrame({'Time': x4, 'Data': y4})
df6 = pd.DataFrame({'Time': x6, 'Data': y6})
plt.xlabel('Relative Time in Seconds', fontsize=12)
plt.ylabel('Data', fontsize=12)
plt.grid(linestyle = 'dashed')
plt.plot(x4, y4)
plt.plot(x6, y6)
plt.show()
Lorsque je tape 'df4 ['outlier'] = (df4 <2) | (df4> 4) 'après' df4 = pd.DataFrame ({'Time': x4, 'Data': y4}) 'J'obtiens une erreur: ValueError: Mauvais nombre d'éléments passés 2, le placement implique 1 –
Bien sûr. Vous devez spécifier quelle colonne doit être utilisée dans la comparaison logique. Donc, si vous voulez qu'il soit basé sur "Data" alors il devrait être '(df4 [" Data "] <2) | (df4 ["Data"]> 4) ' – omdv
Cela fonctionne maintenant! Votre dernière phrase m'intéresse cependant. Je n'avais même pas envisagé de les mettre en évidence sur le graphique. Comment puis-je utiliser la colonne aberrante comme indicateur de couleur? –