gpt4 book ai didi

python - 将 pandas 系列转换为具有 NaN 值的 int

转载 作者:行者123 更新时间:2023-12-04 08:35:23 27 4
gpt4 key购买 nike

我的 DataFrame 中有一个系列 (month_addded),如下所示:

9.0
12.0
12.0
nan
1.0

我希望所有的 float 都是整数,而 NaN 保持原样。我这样做了:

for i in df['month_added']:
if i > 0:
i=int(i)

但它什么也没做。

最佳答案

NaN 是 float 类型的,因此只要您有 NaN,Pandas 就会始终将您的列向下转换为 float。您可以使用 Nullable Integer ,可从 Pandas 0.24.0 获得:

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,您可以使用0 屏蔽NaN:

df['month_added'] = df['month_added'].fillna(0).astype(int)

关于python - 将 pandas 系列转换为具有 NaN 值的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64823326/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com