[USER (data scientist)]: Lastly, let's find confidence intervals for the average win/loss ratio for each court surface, so at first calculate the mean and standard error of the mean for the average win/loss ratio for each surface type. Please generate and display a series of values representing the mean and standard error of the mean (SEM) for average win/loss ratios on hard, clay, and grass surfaces in the ATP tennis dataset.
My template of code snippet is:

---BEGIN CODE TEMPLATE---

import pandas as pd
import scipy.stats as stats
import pickle

atp_tennis = pd.read_csv('atp_tennis.csv')

# YOUR SOLUTION BEGIN:
<code1>
[COMPLETE YOUR CODE]
</code1>
# YOUR SOLUTION END

print(hard_mean)

# save data
pickle.dump(hard_mean,open("./ref_result/hard_mean.pkl","wb"))

# YOUR SOLUTION BEGIN:
<code2>
[COMPLETE YOUR CODE]
</code2>
# YOUR SOLUTION END

print(hard_sem)

# save data
pickle.dump(hard_sem,open("./ref_result/hard_sem.pkl","wb"))

# YOUR SOLUTION BEGIN:
<code3>
[COMPLETE YOUR CODE]
</code3>
# YOUR SOLUTION END

print(clay_mean)

# save data
pickle.dump(clay_mean,open("./ref_result/clay_mean.pkl","wb"))

# YOUR SOLUTION BEGIN:
<code4>
[COMPLETE YOUR CODE]
</code4>
# YOUR SOLUTION END

print(clay_sem)

# save data
pickle.dump(clay_sem,open("./ref_result/clay_sem.pkl","wb"))

# YOUR SOLUTION BEGIN:
<code5>
[COMPLETE YOUR CODE]
</code5>
# YOUR SOLUTION END

print(grass_mean)

# save data
pickle.dump(grass_mean,open("./ref_result/grass_mean.pkl","wb"))

# YOUR SOLUTION BEGIN:
<code6>
[COMPLETE YOUR CODE]
</code6>
# YOUR SOLUTION END

print(grass_sem)

# save data
pickle.dump(grass_sem,open("./ref_result/grass_sem.pkl","wb"))

---END CODE TEMPLATE---

[YOU (AI assistant)]: Here's the code to get those stats for each court surface: 
'''
import pandas as pd
import scipy.stats as stats
import pickle

atp_tennis = pd.read_csv('atp_tennis.csv')

# YOUR SOLUTION BEGIN:
