With DataFrame.loc you can find the rows that satisfy your condition. Check the example below:
mock_time_series.csv
time,v1,v2
100,10,20
200,20,22
300,14,12
400,33,22
500,43,62
df = pd.read_csv('mock_time_series.csv')
By using .loc:
df.loc[df['v1'] >= 20]['time'].values
You will get as a response:
array([200, 400, 500])
As well, for the 'v2' column:
df.loc[df['v2'] >= 20]['time'].values
The respective time list is as follows:
array([100, 200, 400, 500])
Then, you can get the intersection of both lists if you want the list of common intersections (list intersection, from this response):
# intersection of lists list(set(a) & set(b))
list(set(df.loc[df['v1'] >= 20]['time'].values) & set(df.loc[df['v2'] >= 20]['time'].values))
The resulting list will be as follows:
[200, 500, 400]