Python 如果单元格的类型为float,则希望使用lambda函数更改单元格的类型

Python 如果单元格的类型为float,则希望使用lambda函数更改单元格的类型,python,pandas,types,Python,Pandas,Types,我想将任何类型为float的单元格转换为类型int: 我的想法是使用如下lambda函数: df["ev_id"].apply(lambda x: [int(x) if x is type(float)]) 但这引发了一个语法错误,我无法捕捉到。任何帮助都将不胜感激 原始数据: ev_id " " 343.0 234.0 " " 212.0 "Temp" 转化: ev_id " " 343 234 " " 212 "Temp" 您可以使用byinteger值-首先与errors='conc

我想将任何类型为
float
的单元格转换为类型
int

我的想法是使用如下lambda函数:

df["ev_id"].apply(lambda x: [int(x) if x is type(float)])
但这引发了一个语法错误,我无法捕捉到。任何帮助都将不胜感激

原始数据:

ev_id
" "
343.0
234.0
" "
212.0
"Temp"
转化:

ev_id
" "
343
234
" "
212
"Temp"
您可以使用by
integer
值-首先与
errors='concurve'
一起使用,将非数值替换为
NaN
s,然后通过以下方式删除它们并强制转换:

s = pd.to_numeric(df['ev_id'], errors='coerce').dropna().astype(int)
print (s)
1    343
2    234
4    212
Name: ev_id, dtype: int32

df['ev_id'].update(s)
print (df)
  ev_id
0      
1   343
2   234
3      
4   212
5  Temp

所需的lambda函数:

lambda x: int(x) if isinstance(x, float) else x

如果仍然存在问题,是否可以添加一些数据样本?使用isinstance仍然会引发错误。请查找样本数据