I am looking for a way to automatically find a starting point of rising in my signal in Python. The data are collected with the frequency 10k (0.0001 s each) so the differences between each point are very small, lost in the noise. I found this point (black dot) manually using data analysis software before but I have multiple files and the manual process is not gonna work well. I was trying to think of something to do with derivative (red dots) or rolling variance (green dots) but it's a dead end for me now. Here's how manual point was chosen:

[![enter image description here][1]][1]

and now I wanted to find it using python. The full signal looks like this:

[![enter image description here][2]][2]

The derivative:

[![enter image description here][3]][3]

The rolling variance:

[![enter image description here][4]][4]

So they're all close to the interest point (black dot) but I don't know what to do with them next. If I change the limits it all looks like this:

[![enter image description here][5]][5]
[![enter image description here][6]][6]
[![enter image description here][7]][7]


**Any ideas how to solve my problem?** The simple code sample is below (plotting excluded)

    import numpy as np
    import matplotlib.pyplot as plt
    import pandas as pd
    from scipy.optimize import curve_fit
    import scipy.signal as sig
    
    #reading dataset
    signal = pd.read_csv('dataset.txt', delimiter='	' )
    signal.columns = ['time','current']
    
    #calculating derivative, finding max and min indices of derivative
    signal_derivative = np.gradient(signal,axis=0)
    signal['derivative'] = pd.DataFrame(signal_derivative[:,1])
    index_derivative_max = signal['derivative'].index[signal['derivative'] == signal['derivative'].max()]
    index_derivative_min = signal['derivative'].index[signal['derivative'] == signal['derivative'].min()]
    
    #calculating rolling variance, range 50 points, finding indices of peaks
    signal['rolling_var'] = signal['current'].rolling(window=50,center=False).std()
    index_rolling_max = signal['rolling_var'].index[signal['rolling_var'] == signal['rolling_var'].max()]
    index_rolling_2nd_max = signal['rolling_var'].index[signal['rolling_var'] == signal['rolling_var'][:100000].max()]

  [1]: https://i.sstatic.net/mapsn.png
  [2]: https://i.sstatic.net/p84tr.png
  [3]: https://i.sstatic.net/KHaXg.png
  [4]: https://i.sstatic.net/yacbH.png
  [5]: https://i.sstatic.net/NPaeT.png
  [6]: https://i.sstatic.net/PoOyr.png
  [7]: https://i.sstatic.net/bQRE7.png