Shi,
No, I don’t feel the same. If need to do some data manipulation using pandas data frame objects, I’ll create a possible generic function(s) for it. I just can’t copy and paste code from one project to another, and start refactoring it — “kind of wasting my time”. I have developed a huge DataPreprocessingClass(object) to be used in all my data preprocessing projects. In my case, I just copy and pasta this class file data_ preprocessing_class.py in my new project and call the functions I need. If I need to create a new one I’ll do it. For me this is good and simple! One more thing, Jupyter Notebook should be used for teaching and presentation only, in real production project development we use: PyCharm, Spyder, Visual Studio Code, Eclipse IDE, etc. Thank you for your post.