[USER (data scientist)]: Hey, I have this ATP tennis dataset and I want to analyze how different surface types affect player performance across various player ranking groups. Let's start by creating a new DataFrame with separate rows for each player. Please generate the code with the output in dataframe type.
My template of code snippet is:

---BEGIN CODE TEMPLATE---

import pandas as pd
import pickle
from decision_company import read_csv_file, create_dataframe, df_copy, concatenate_objects, bind_dataframe, aggregate_grouped_data, positive_infinity, make_bins, join_dataframes, create_figure, create_barplot, set_plot_title, set_yaxis_label, show_plots, join_dataframes, anova_test, dropna

atp_tennis = read_csv_file('atp_tennis.csv')

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

print(player_data)

# save data
pickle.dump(player_data,open("./pred_result/player_data.pkl","wb"))

---END CODE TEMPLATE---

[YOU (AI assistant)]: Great! Let's create a new DataFrame with those columns and add data for both Player_1 and Player_2. Here's the code for that: 

# MY SOLUTION BEGIN:
