除了前几行外,将一列转换为浮点数,即一列中的选择性转换

问题描述

我正在尝试进行一些数据处理,但是每次都会遇到相同的错误。 我的数据框(con_tc)如下所示:-

Index       u_p0       u_p1      u_p2.........u_p100
x            0          0          0            0
y            0          0          0            0
z            30         50         75          1000 
0.01        0.5        0.6       0.43          0.83
0.02        0.56       0.94      0.94          0.7
....
1000        0.4        0.5       0.45          0.56

当我运行这段代码con_tc.index = con_tc.index.map(lambda w: float(w) if (w not in 'xyz') else w)时 试图将索引清理为浮点数,我得到的错误TypeError: 'in <string>' requires string as left operand,not float

此操作的目的是将除x,y和z之外的所有数字转换为浮点数。 基本而言

Index
  x
  y
  z
  0.01
  0.02
 ....
  1000

如果有人可以帮助我,那将真的很有帮助。

解决方法

也许您可以使用这种方式

con_tc ['float_u_p_0'] = con_tc.apply(lambda x:float(x.u_p0)如果x.Index不在(“ xyz”)中,否则x.u_p0