是什么使replace()用法与众不同?

时间:2019-06-16 10:51:04

标签: python pandas dataframe replace

我在pandas数据框中有一列,我想将其转换为float值。字符串值示例:“ 0,40”,“ 0,50”,依此类推。 所以我首先要做的是用点替换逗号。

当我尝试这样做

df.columnname = df.columnnname.replace(',', '.')

它不起作用。 有趣的是,替换适用于完整值,例如:

df.columnname = df.columnnname.replace('0,40', '.')

有人知道为什么吗?

1 个答案:

答案 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