pandas ValueError:无法将字符串转换为float:2019 - 05 - 22 00:00:00

x33g5p2x  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(115)

我试图使这个字符串'[-0.8783137 0.05478287 -0.08827557 0.69203985 0.06209986]'浮动,但它给我一个错误。实际上,在我的dataframe中,这个列是对象类型的,每一行有768个值,我想让它为这些嵌入的值浮动类型。
我已经尝试过这些代码转换为浮点数,但无法解决它们。它正在给出这个错误。

import pandas as pd

df = pd.DataFrame({'encoded_values': ['[-0.8783137, 0.05478287, -0.08827557, 0.69203985, 0.06209986]', 
                            '[0.31444644, -0.6546649, 0.7211526, 0.9819127, 0.74042267]']})
df['encoded_values']=df['encoded_values'].astype(float)
df['encoded_values'] = df['encoded_values'].str.replace(',', '').astype(float)
df['encoded_values'] = pd.to_numeric(df['encoded_values'], downcast='float')
mrfwxfqh

mrfwxfqh1#

字符串访问器是此类问题的完美解决方案。

df.encoded_values.str.strip("[]").str.split(", ", expand=True, regex=False).astype(float)

输出:
| | 0|1|二|三|四|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 0| -0.878314 |0.054783| -0.088276 |0.692040|0.062100|
| 1|0.314446| -0.654665 |0.721153|0.981913|0.740423|

相关问题