Confusing API for constructing Series from DataFrame
The current API for constructing a Series from a DataFrame containing just a single column currently is quite confusing in my opinion. The following illustrates my experience trying to transform a Dataframe containing just a single column into a Series object. This may or may not be exemplary for other users.

1. I know there's a `to_frame` (why not `to_dataframe`?) method for Series, so I guess there's also a `to_series` method for dataframes...? [There isn't.]
2. Well, then I'll just call the Series constructor using the DataFrame: `pd.Series(df)`. From a user perspective, the only sensible thing that this could possibly do is return the Series corresponding to the (single) column. I'm not exactly sure what it does, but it definitely doesn't do what I expected it to do and the result doesn't look very useful in any case:
```
pd.Series(pd.DataFrame({'a':[1,2,3]}))
Out[20]: 
0    (a,)
1    (a,)
2    (a,)
dtype: object
```
3. Some googling reveals that `squeeze` appears to be the almost-inverse of the `to_frame` method, except that it returns an `int` instead of a `Series` in the 1x1 case:
```
type(pd.DataFrame({'a':[1]}).squeeze())
Out[22]: numpy.int64
```
4. Further googling yields a solution that technically does exactly what I want but to my eyes somewhat obscures what's happening: `df.iloc[:, 0]`.

Specific questions:
1. Why is it `to_frame` and not `to_dataframe`? Is there any reason not to introduce the latter as an alias to the former?
2. Could there be a `to_series` method on dataframes that raises an exception if there's more than one column and otherwise works like `squeeze` except that it always returns a `Series`?
3. Why does the first example above using the `Series` constructor do what it does, and can't this be changed so that it does something useful for this use case?

(I'm not sure if this has been discussed before; I couldn't find any related issue. Sorry if this is a duplicate post!)

On a sidenote, this issue is quite representative of my experiences with pandas so far: it is almost always capable of doing what I'd like it to do, but it often takes me longer than expected to get things to work due to (for me, at least) unintuitive and partly inconsistent API design. That being said, it's still immensely useful and I use it on an almost daily basis. Thanks a lot to everyone involved!