Skip to main content
 首页 » 编程设计

python之如何使用 Nan 数据将 String 转换为 Int

2025年05月04日20jyk

我想将字符串数据转换为 int 以删除小数点作为整数。 它在数据框中有浮点格式数据。

如果该列没有 nan 数据,它会起作用。 但是,如果 nan 数据类似于以下代码,则它不起作用。

df = pd.Dataframe([[1, '1.0'], [2, ''], [3, '2.8']], 
                  columns=['id', 'number']) 
df.loc[:, 'number'] = df['number'].astype(float).astype(int) 

我该怎么做?

请您参考如下方法:

第一次使用to_numeric用于将非数字转换为 NaN。

如果可以使用 pandas 0.24+,请使用 Nullable integer data type :

#get values before `.` 
s = df['number'].str.split('\.').str[0] 
df['number'] = pd.to_numeric(s, errors='coerce').astype('Int64') 

或者使用np.floor:

df['number'] = pd.to_numeric(df['number'], errors='coerce').apply(np.floor).astype('Int64') 

或者:

df['number'] = np.floor(pd.to_numeric(df['number'], errors='coerce')) 
df['number'] = df['number'].astype('Int64')