想要使用lambda函数更改单元格的类型(如果类型为float)

时间:2018-07-14 16:55:49

标签: 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"

2 个答案:

答案 0 :(得分:0)

您可以使用update乘以integer的值-首先将to_numericerrors='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