您需要
errors='coerce'向功能添加参数
to_numeric:
ID = pd.to_numeric(ID, errors='coerce')
如果
ID是列:
df.ID = pd.to_numeric(df.ID, errors='coerce')
但非数字会转换为
NaN,因此所有值都是
float。
对于
int需要转换
NaN到一些值,例如,
0然后转换为
int:
df.ID = pd.to_numeric(df.ID, errors='coerce').fillna(0).astype(np.int64)
样品:
df = pd.Dataframe({'ID':['4806105017087','4806105017087','CN414149']})print (df) ID0 48061050170871 48061050170872 CN414149print (pd.to_numeric(df.ID, errors='coerce'))0 4.806105e+121 4.806105e+122 NaNName: ID, dtype: float64df.ID = pd.to_numeric(df.ID, errors='coerce').fillna(0).astype(np.int64)print (df) ID0 48061050170871 48061050170872 0编辑:如果使用0.25+大熊猫,则可以使用
integer_na:
df.ID = pd.to_numeric(df.ID, errors='coerce').astype('Int64')print (df) ID0 48061050170871 48061050170872 NaN


