"Let's consider two definitions of "good code" so we can be clear what we mean by better.
Code that is short, concise, and can be written quickly
Code that is maintainable
If we're using the first definition, the Python version is "better". If we're using the second, it's far, far worse."
"I've painted a rather bleak picture of using Python to manipulate complex (and even not-so-complex) data structures in a maintainable way. In truth, however, it's a shortcoming shared by most dynamic languages. In the second half of this article, I'll describe what various people/companies are doing about it, from simple things like the movement towards 'live data in the editor' all the way to the Dropboxian 'type-annotate all the things' (Static Typing in Python). In short, there's a lot of interesting work going on in this space and lot's of people are involved (notice the second presenter name [Guido] in that Dropbox deck)."
To summarize in terms of best performance at summing a list, NumPy ndarray sum > pandas Series sum > standard library sum > for loop > standard library reduce.
DataFrame methods for aggregation and grouping are typically faster to run and write than the equivalent standard library implementation with loops. For instances where performance is a serious consideration, NumPy ndarray methods offer as much as one order of magnitude increases in speed over DataFrame methods and the standard library.