NLP data cleaning and word tokenizing
I summarize your questions and then try to answer under each bullet point:

How to remove punctuation marks (e.g. # for hashtags which is used in social media)

The first goto is a regular expression that is used in data preprocessing very frequently. But if you are looking for all your punctuation to be removed from the text you can use one of these two approaches:
import string
sentence = &quot;hi; how*, @are^ you? wow!!!&quot;
sentence = sentence.translate(sentence.maketrans('', '', string.punctuation))
print(sentence)

output: 'hi how are you wow'
or use a regular expression, example:
import re
s = &quot;string. With. Punctuation? 3.2&quot;
s = re.sub(r'[^\w\s]','',s)
print(s)

output: 'string With Punctuation 32'

What are the possible python library for data cleaning?

generally, NLTK and SciPy are very handly. But for specific purposes, other libraries also exist. For example library contractions, inflect.

Which libraries are efficient in data cleaning when using pandas dataframes?

You can apply any function from any library to your pandas dataframe using the apply method.
Here is an example:
mport pandas as pd 
s = pd.read_csv(&quot;stock.csv&quot;, squeeze = True) 
  
# adding 5 to each value 
new = s.apply(lambda num : num + 5) 

code source