Is there some reason that you can't just use GeoAccessor.from_featureclass and leapfrog the non-spatial dataframe?
Using from_df is specifically for dataframes with an address string in them, and the resulting spatial dataframe will have the geocoded points.
Since your data looks like it's points, there are a couple ways you can do it. The first, and easiest, is to use set_geometry. You could even set the inplace parameter to "True" and turn your non-spatial dataframe into a spatial dataframe if you wanted.
sdf = CompDF.spatial.set_geometry('SHAPE', 32616)
The second method is more hacky, but I recall at least one or two situations where I had to go about it this way for some reason. Essentially, you take the 'SHAPE' column and split it up into multiple columns, then use from_xy to create the spatial dataframe.
xy_df = pd.concat([CompDF, CompDF['SHAPE'].apply(pd.Series)], axis=1)
sdf = GeoAccessor.from_xy(xy_df, 'x', 'y', 32616)
- Josh Carlson
Kendall County GIS