<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jan 20, 2015 at 9:20 PM, Matthew Rocklin <span dir="ltr"><<a href="mailto:mrocklin@gmail.com" target="_blank">mrocklin@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="font-family:monospace,monospace">df.sort(<a href="http://df.name" target="_blank">df.name</a>) </div><div style="font-family:monospace,monospace"><br></div><div><font face="arial, helvetica, sans-serif">or strings</font></div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">df.sort('name')</div><div style="font-family:monospace,monospace"><br></div><div><font face="arial, helvetica, sans-serif">auto-generated attributes work great until you want to use chained expressions</font></div><div style="font-family:monospace,monospace"><br></div><div style="font-family:monospace,monospace">df.change_dataframe().sort(some_new_column_not_in_df)</div></blockquote></div><br>I would like to add that Python 3.4 enums would make a better and more idiomatic replacement for auto-generated attributes, e.g. <a href="http://df.columns.name">df.columns.name</a> (which may look similar to SQLAlchemy semantics for those familiar). Note how languages such as Ruby, Clojure, and Julia do not have enums and how languages with enums tend to not have symbols. With immutable strings and enums already present, symbols do not add very much value.</div></div>