The wine data has columns on wildly different scales. A pipeline puts a scaler in front of the model so you can't forget it.
Task: write pipeline_score(scaler_name, k).
scaler_name is "standard" (use StandardScaler) or "minmax" (use MinMaxScaler).X and y, and split with train_test_split(X, y, test_size=0.25, random_state=0).KNeighborsClassifier(n_neighbors=k), and fit it on the training rows.