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"
您可以使用byinteger
值-首先与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仍然会引发错误。请查找样本数据