Writing data to a file using write.csv failes to retain column data types. A better way to save/restore data objects to/from files is by using RDS and RData.
Instead of a cumbersomely nested ifelse statement, use dplyr’s mutate and case_when functions instead.
Convert data.frame factor columns to character columns before trying to replace NULL values.
Find NULLs in a dataframe using is.na().
Ctrl-Z to the rescue. ‘nuf said.
Adding temporary print statements to troubleshoot Python code is quick and dirty. And messy. Incorporating logging into your code habit is a great alternative to relying on ad-hoc print statements that just need to get deleted later.