我的 DataFrame 中有一个系列(month_addded),如下所示:
9.0
12.0
12.0
nan
1.0
我希望所有的浮点数都是整数,而 NaN 保持原样。我这样做了:
for i in df['month_added']:
if i > 0:
i=int(i)
但它什么也没做。
NaN是浮点型的,所以只要你有NaN. 您可以使用可从 Pandas 0.24.0 获得的Nullable Integer:
df['month_added'] = df['month_added'].astype('Int64')
如果这不可能,您可以强制Object输入(不推荐):
df['month_added'] = pd.Series([int(x) if x > 0 else x for x in df.month_added], dtype='O')
或者由于您的数据是积极的,并且您可以使用以下NaN内容进行屏蔽:NaN0
df['month_added'] = df['month_added'].fillna(0).astype(int)