【发布时间】:2020-01-28 11:59:36
【问题描述】:
通过这种尝试df['Total'] = df['Total'].astype('float') 返回could not convert string to float: '5½'。我也试过.str.split(),但也没有用。
import pandas as pd
d = {'Total': ['6', '5', '5', '5½', '5½', '6½', '6½']}
df = pd.DataFrame(data=d)
【问题讨论】:
-
½是一个特殊的 Unicode 字符,不能识别为 3 个字符、分数或数值。您也许可以使用字符串替换方法将其更改为 '.5' -
@hpaulj 有趣的是,我尝试了字符串替换,但也没有用
-
我有点理解他们在另一个问题中对正则表达式做了什么,我只是不确定如何将其转换为适合我的数据框
-
你可以做
df['Total'] = df['Total'].str.replace('½','.5').astype(float)