Ho dati periodiche con l'indice essere un numero decimale in questo modo:Calcolo attraversamento (intercetta) punti di una serie o dataframe
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')
voglio creare una funzione cross(df, y_val, direction='rise' | 'fall' | 'cross')
che restituisce un array di tempi (indici) con tutti i punti interpolati in cui i valori di tensione corrispondono a y_val. Per 'rise' vengono restituiti solo i valori in cui la pendenza è positiva; per 'fall' vengono ripristinati solo i valori con una pendenza negativa; per 'cross' vengono restituiti entrambi. Quindi se y_val = 0 e direction = 'cross', verrà restituito un array con 10 valori con i valori X dei punti di incrocio (il primo è circa 0,025).
Stavo pensando che questo potrebbe essere fatto con un iteratore, ma mi chiedevo se c'era un modo migliore per farlo.
Grazie. Sto amando la comunità di Pandas e Pandas.
btw, potresti esserti imbattuto in un insetto nel placcaggio dei panda. Credo che il primo incrocio dovrebbe essere intorno a 0,05, in base ai dati, ma le etichette non si allineano, facendo sembrare che attraversi a 0.025. (panda 0.7.3) – Garrett