What does this code do? I understand it is running a for loop, checking each array element for nulls. I don't understand why there are 2 functions: isnull & any. Also, what does the col before the 'for' do? It looks like a for loop can return the iterable and a tuple is being made. Is that in the Python docs?
cols_with_missing = [col for col in X_train.columns
if X_train[col].isnull().any()]