Python is a versatile language and it supports a wide variety of programming paradigms. At its heart it's object-oriented, but in this talk I want to discuss how you can use Python to write clean, efficient, and modular functional code. I'll begin by giving a little background on what functional programming is and why you might use it. I'll talk through some of the simple primitives of functional programming, and I'll give some useful examples of functional code for data analysis. The aim is to give a practical and pragmatic introduction to these ideas, covering some of the strengths and weaknesses of Python as a functional language.