我在pandas数据框中有一列,我想将其转换为float值。字符串值示例:“ 0,40”,“ 0,50”,依此类推。 所以我首先要做的是用点替换逗号。
当我尝试这样做
df.columnname = df.columnnname.replace(',', '.')
它不起作用。 有趣的是,替换适用于完整值,例如:
df.columnname = df.columnnname.replace('0,40', '.')
有人知道为什么吗?
答案 0 :(得分:0)
您需要regex=True
来替换子字符串,如果忽略它,熊猫请尝试使用单独的,
替换值,并且由于不存在,因此不会替换值:
df.columnname = df.columnnname.replace(',', '.', regex=True)
检查差异-在new2
列中仅替换第二,
,因为没有子字符串:
df = pd.DataFrame({'columnnname':['0,40',',','10']})
df['new1'] = df.columnnname.replace(',', '.', regex=True)
df['new2'] = df.columnnname.replace(',', '.')
print (df)
columnnname new1 new2
0 0,40 0.40 0,40
1 , . .
2 10 10 10