Why i am getting t statistics different
t.ppf is calculating a 1-tail inverse cdf. It looks like you're trying to look up the t-value for p=.95, but the value you are referring to in the table is a 2-tailed value of .95, meaning the one tailed value is 1 - (1-.95)/2 = .975. So 

In [104]: st.t.ppf(0.975, df=9)
Out[104]: 2.2621571627409915