Pandas DataFrame dfのカラム”col”のdtypeをfloat64からintに変換するには

In [1]: df[["col"]]=df[["col"]].astype(int)

で通常うまくいくのですが,NaNが存在するとエラーとなります.intではNaNが扱えません.回避する方法の一つはNaNに適当な値を入れることです.

In [2]: df[["col"]]=df[["col"]].fillna(0.0).astype(int)

この問題は公共用水域水質測定データを扱っているときに起こりました.時分カラムは通常10時30分なら1030のように読み込まれ,整数として認識され,それを処理すればよかったのですが,空白セルがあると,他がすべて整数でもカラム全体がfloat64となり,空白セルの値がNaNになりました.このとき10時30分は1030.0となり,datetimeへの変換がうまくいかなくなりました.空白セルなので仮の時刻は何でもよく,0としても問題なかったのでこのように処理しました.