tengo datos periódicas con el índice es un número de coma flotante de este modo:Cálculo de cruce (en el origen) puntos de una serie o trama de datos
time = [0, 0.1, 0.21, 0.31, 0.40, 0.49, 0.51, 0.6, 0.71, 0.82, 0.93]
voltage = [1, -1, 1.1, -0.9, 1, -1, 0.9,-1.2, 0.95, -1.1, 1.11]
df = DataFrame(data=voltage, index=time, columns=['voltage'])
df.plot(marker='o')
Quiero crear una función cross(df, y_val, direction='rise' | 'fall' | 'cross')
que devuelve una matriz de tiempos (índices) con todos los puntos interpolados donde los valores de voltaje son iguales a y_val. Para 'aumento', solo se devuelven los valores donde la pendiente es positiva; para 'caer', solo se retienen los valores con una pendiente negativa; para 'cruz' ambos son devueltos. Entonces, si y_val = 0 y direction = 'cross', se devolverá una matriz con 10 valores con los valores X de los puntos de cruce (siendo el primero aproximadamente 0.025).
Estaba pensando que esto podría hacerse con un iterador, pero me preguntaba si habría una mejor manera de hacerlo.
Gracias. Me encantan los pandas y la comunidad de los pandas.
Por cierto, es posible que haya tropezado con un error en el trazado de pandas. Creo que el primer cruce debería ser alrededor de 0.05, basado en los datos, pero las etiquetas no se alinean, lo que parece cruzar a 0.025. (pandas 0.7.3) – Garrett