Another update: resolved (see comments and my own answer).
Update: this is what I am trying to explain.
I see. Pandas is using Bessel's correction by default -- that is, the standard deviation formula with N-1 instead of N in the denominator. As behzad.nouri has pointed out in the comments,
N-1
N
pd.Series([7,20,22,22]).std(ddof=0)==np.std([7,20,22,22])