np.NaNis just a floating point, so it needs to be removed to create an integer pd.Series. Jeon's suggestion works fine if 0 is not a valid value in df['b']. For instance:
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1, 5, 5], 'b': [np.NaN, 7200.0, 580.0], 'c': [3, 20, 20]})
print(df, '\n\n')
df['b'] = np.nan_to_num(df['b']).astype(int)
print(df)
0, (, -999999999), , 0.
, , 0, NaNs. , (, ..).