正如标题所说,我有一个Pandas数据框,其中包含float64
,表示整数。我想将其转换为使用int64
,但它还包含NaN
个值。因此,我能做的最好的事情是将其转换为类型object
,将所有非NaN
值转换为整数。如果不手动迭代列,最好的方法是什么?
这是必要的,这样当我使用to_sql
转换数据帧时,使用可以为空的整数类型而不是float。
例如:
>>> df
a b
0 1 2.0
1 3 NaN
我想要的是什么:
>>> df
a b
0 1 2
1 3 NaN
答案 0 :(得分:0)
尝试使用.apply
<强>演示:强>
import pandas as pd
import numpy as np
df = pd.DataFrame({"s": [2.0, np.nan]})
print(df["s"].apply(lambda x: x if np.isnan(x) else np.int64(x)))
<强>输出:强>
0 2
1 NaN
Name: s, dtype: float64