This is very simple. Let's say your data in Panda format (named data_df), and extracting peaks/spikes over a certain threshold (e.g. 15000 here) is simply:
data_df[data_df > 15000]
If this data is sitting in a particular column, you can use this instead:
data_df[data_df['column_name'] > 15000]
These will return the peak values.
If you want local extreme points (e.g. maximum or minimum ) around each peak, check scipy.signal.argrelextrema in Scipy. A concrete example:
Let's make a artificial random data with random spikes:
import numpy as np
import matplotlib.pyplot as plt
Now using argrelextrema function you will find the index of relative extreme values (either minimum or maximum)
c_max_index = argrelextrema(random_number, np.greater, order=5)
Please make sure you understand the "order" option. It basically look around 5 neighbouring points, and it returns the maximum in this case. And you can see how it works by pinpointing the found points on the actual graph like this:
plt.scatter(c_max_index,random_number[c_max_index],linewidth=0.3, s=50, c='r')
Note that you can retrieve peak points via random_number[c_max_index], and c_max_index are just indexes of the extreme points.