I'll attempt to produce a non-technical simple answer;
Imagine your data plotted on a graph where the horizontal, X axis, is time in 1/100th of a second intervals and the vertical, Y axis position is the number your data represents, e.g. -1000 to 1000. (you have not given the bounds of your data, but this does not matter).
If you draw this graph you will have some sort of wavy line. We call this a time domain plot.
As an example, imagine this line started at 0, then after 10 time intervals went to 1000, then after another 10 time intervals went to -1000, and did so over and over with the shape of a perfect sine wave.
So after 20 time intervals it completed one 'cycle' and this is repeated every further 20 time intervals. Well, we know 1 time interval is 1/100th of a second, so 20 time intervals is 20/100ths of a second. We can find the 'frequency' of this signal by simply dividing 1 second by it. 1s / (20 * 0.01) of a second is 5. These are Hertz (shortened to Hz). The frequency of our signal is 5Hz.
Note that it took more than one point (sample) to define the frequency of a signal. In our case it took 20. Thus it is meaningless to ask the frequency of a single data point in the time domain.
Frequency, for an audio signal, would be it's tone. But equally it could be vibration or temperature or any other physical property that can be measured.
You will just have to accept this next bit; In signal theory, any contiguous signal can be represented at an instant in time as a sum of an infinate series of sine waves, each having just two properties, frequency and amplitude. Amplitude is the Y axis, above. We've just had an example of frequency.
We can also plot this on a graph, but on this new graph the horizontal axis is frequency instead of time. The vertical axis is still amplitude.
Instead of a wobbly line we'd draw a single vertical line from zero to 2000 at the horizontal position of 5Hz.
So imagine the first graph again, but this time it's much more complicated. It wobbles all over the place. It's a complicated mess, but the sample points are still every 1/100th of a second.
According to the previous statement we'd need an infinate number of sine waves to define it, that would be a very big frequency domain plot!
However, here is another statement you will just have to accept; It is that "any sampled data has what is called a Nyquist limit". This states that any sampled signal can only describe fully and accurately the origianl signal with a frequency upto 50% of the sample rate. E.g. Your sample rate is 100Hz, so the 'Nyquist limit' is 50Hz.
So why bother including frequencies above 50Hz in our so called infinate series, the sample rate means we'd never detect them.
Our frequency plot of the more complex signal need have no points above 50Hz.
Why bother having an infinate number of sine waves (even if they stop at 50Hz) if the difference in frequency between them is so tiny that thay are almost the same. We can have far fewer!
Imagine our orignal time domain graph. Imagine that at each sample point we multiplied the sample by some number between zero and one. Obviously if we multiplied all the samples by zero we'd get a flat line. If we used one we'd get the orignal signal back.
But what if we multiplied the points by a different number for each sample, selected from a repeating sequence. We'd get a completly different, yet predictable, result.
But hang on, these point multipliers are themselves a repeating, periodic series of points so they also must have a relationship to frequency domain equivilent. To keep this simple we will just accept that they do.
Lets take this idea further:
So this time we'll create a sequence of, lets call them coefficients, let there be three of them for example; C1=0.1, C2=0.2, C3=0.1.
Starting at our third sample in time (S3), we'll multiple the 3rd sample by the 1st coeficient, the 2nd by the 2nd, 1st sample by the 3rd. We'll then sum the result and make our new 3rd sample that value.
S1new = S1
S2new = S2
S3new = (S3 * C0) + (S2new * C1) + (S1new * C2)
S4new = (S4 * C0) + (S3new * C1) + (S2new * C2)
S5new = (S5 * C0) + (S4new * C1) + (S3new * C2)
S6new = (S6 * C0) + (S5new * C1) + (S4new * C2)
....and so on until we've used up all the samples.
This is called convolution.
We could even shift the samples in time down one sample once we'd done all the sums, that way we could go on forever. S2 becomes S1, S3 to S2, etc.
So each Nth sample is modified by the three preceding it and the three coefficients.
This is what we call a digital filter.
There are basicly two sorts of digital filter algorithm, (Finite impluse response) FIR and (infiniate impulse response) IIR. The above example is a FIR. Of these there are three types, low, band and high pass.
The question you might ask is, "How do I know what coefificients to use?"
The complete answer to that is complicated, but there are online tools e.g. Tfilter and special programs (like Matlab, Python, Octave or sMath) that can help you. Just plug in your sample rate, 20Hz cutoff and a few other parameters.
The length of the coeficients is related to the 'order' of the filter, the higher the order the more of the unwanted signal is blocked but the final output takes longer to get as it takes more calculations.
No digital filter is perfect. All have some non-ideal effects on both the in-band (wanted) and out-of-band (unwanted) signal. These effects might be ripple, non-linear gain and a phase shift (a time delay) all of which depend on frequency. Sadly no filter will completely eliminate the out of band signal or have absolutely no effect on the wanted one.
There are filter models that are used to describe these effects with funny names like Chebbyshev, Butterworth and Bessel. I can advise you that Butterworth is a good starting point.
The bottom line:
For your data, all you need to decide is the length (order) and what non-ideal shape you require (e.g. Butterworth). Plug this into a program to generate FIR coefficients and implement the code loop listed above to process your data.
Programs have software levers you can play with to allow you to trade off the non-ideal response against the ratio of wanted to unwanted signal.