Rewrite Nltk code to a function which can be used multiple time in python : How to rewrite the my code into a function which can called again

**My code**

    stopwords=nltk.corpus.stopwords.words('english')
    user_defined_stop_words=['st','rd','kwun tong','kwai chung','kwun','tong']                    
    new_stop_words=stopwords+user_defined_stop_words
    data['Clean_addr'] = data['Adj_Addr'].apply(lambda x: ' '.join([item.lower() for item in x.split()]))
    data['Clean_addr']=data['Clean_addr'].apply(lambda x:"".join([item.lower() for item in x if  not  item.isdigit()]))
    data['Clean_addr']=data['Clean_addr'].apply(lambda x:"".join([item.lower() for item in x if item not in string.punctuation]))
    data['Clean_addr'] = data['Clean_addr'].apply(lambda x: ' '.join([item.lower() for item in x.split() if item not in (new_stop_words)]))
    cv = CountVectorizer( max_features = 200,analyzer='word',ngram_range=(1, 3)) 
    cv_addr = cv.fit_transform(data.pop('Clean_addr'))
    for i, col in enumerate(cv.get_feature_names()):
        data[col] = pd.SparseSeries(cv_addr[:, i].toarray().ravel(), fill_value=0)


Any help appreiated.