我想将任何类型为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"
答案 0 :(得分:0)
您可以使用update
乘以integer
的值-首先将to_numeric
与errors='coerce'
一起使用以将非数字替换为NaN
,然后用{{ 3}}并进行投射:
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
答案 1 :(得分:0)
您想要的lambda函数:
lambda x: int(x) if isinstance(x, float) else x