如何更改熊猫中值的数据类型

时间:2019-03-26 14:27:24

标签: pandas

我有一个同时具有float和numpy数组的pandas数据框。

   name    x1     x2       X3
0  a       4.7    [0.]     3
1  b       3.2    [1.7]    5
2  e       1.2    [2.]     6

我想将数据框中的所有numpy值更改为float。 即

   name    x1     x2       X3
0  a       4.7    0.       3
1  b       3.2    1.7      5
2  e       1.2    2.       6

我们可以用熊猫吗?

很高兴在需要时提供更多详细信息。

1 个答案:

答案 0 :(得分:1)

如果仅使用一个元素列表:

df['x2'] = df['x2'].str[0]

或者:

df['x2'] = df['x2'].apply(lambda x: x[0])

编辑:

注释后,列中有字符串,因此需要:

mask = df.iloc[0].astype(str).str.startswith('[')

df.loc[:, mask] = df.loc[:, mask].apply(lambda x: x.str.strip('[]')).astype(float)