¿Necesito la OOP?

Ésta es una pregunta legítima que puedes estar haciéndote: ¿es necesario programar bajo el paraguas de este paradigma? La respuesta corta es no, no es necesario. En realidad, casi todo lo que se pueden conseguir usando clases puede también conseguirse usando funciones y otras estructuras de Python (hay algunas excepciones). Si no usas OOP, básicamente dejas de aprovechar las ventajas ya comentadas que este estilo de programación ofrece.

Si trabajas en modo "estratégico", pensando en el largo plazo o pensando en aprovechar el trabajo en otros escenarios, necesitas la OOP para ser eficiente. Por el contrario, si trabajas en modo "táctico", en escenarios en los que el tiempo (o la falta de él) es un problema, o no te interesa -por el motivo que sea- pensar en reutilizar tu código, entonces no es imprescindible.

En todo caso, trabajando en análisis de datos, antes o después nos damos cuenta de que hay código que tendemos a repetir una y otra vez, frecuentemente teniendo que repasarlo cada vez que lo usamos para asegurarnos de que es aplicable a nuestro programa. En estos casos, lo mejor que podemos hacer es dedicar a dicho código el tiempo que sea necesario para convertirlo en una clase fiable y reutilizable.