Add simple attribute access to DataFrame columns
This one might need some discussion, but I think it makes sense.

If a column name in a dataframe is a valid Python name and doesn't conflict with any DataFrame attributes, this lets you type `df.MyColumn` than `df['MyColumn']`. That's much handier for interactive use, especially because IPython will tab complete `df.MyColumn.<tab>`, while it won't by default tab complete `df['MyColumn'].<tab>`.

This doesn't interfere with accessing columns through the dictionary interface.

This seems useful-- it might even be possible to get tab completion but the overall computational cost (overriding `__getattribute__`) might be too great. Merged it into master. Thanks!
 Thanks. I think there's a method by which objects can expose extra things for tab completion to IPython, but I that's a lower priority.

Just looking at the code, I think we'd need to register the DataFrame type with `IPython.utils.generic.complete_object` (see code [here](https://github.com/ipython/ipython/blob/master/IPython/utils/generics.py)). I'll get round to doing it at some point.
 I created an issue about this:

https://github.com/wesm/pandas/issues/230
