我有一个同时具有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
我们可以用熊猫吗?
很高兴在需要时提供更多详细信息。
答案 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)