Ao processar datasets pandas, frequentemente você precisa remover valores acima ou abaixo de um dado threshold de um dataset. Uma maneira de “remover” valores de um dataset é substituí-los por valores NaN (not a number) que são tipicamente tratados como valores “ausentes”.
Por exemplo: Para substituir valores da coluna x por NaN onde a coluna x é < 0.75 em um DataFrame df, use este snippet:
import numpy as np
df["x"][df["x"] < -0.75] = np.nanPor exemplo, podemos rodar isso no dataset de exemplo de série temporal pandas do TechOverflow. O dataset original tem duas colunas: Sine e Cosine e se parece com isso:
Após rodar
df["Sine"][df["Sine"] < -0.75] = np.nanvocê pode ver que todos os valores de Sine abaixo de 0.75 foram omitidos do plot, mas todos os valores da coluna Cosine são deixados inalterados:
Exemplo de código completo:
import pandas as pd
import numpy as np
from matplotlib import pyplot as plt
plt.style.use("ggplot")
# Load pre-built time series example dataset
df = pd.read_csv("https://datasets.techoverflow.net/timeseries-example.csv", parse_dates=["Timestamp"])
df.set_index("Timestamp", inplace=True)
# Plot original code
df.plot()
plt.savefig("TimeSeries-Original.svg")e este é o código para plotar o dataset filtrado:
df[df < -0.75] = np.nan
df.plot()
plt.savefig("TimeSeries-NaN.svg")