如何重命名数据框中特定列中的所有值? 我认为这样的事情应该有效:
dfProducts[:StandardCost] = replace(dfProducts[:StandardCost], "£", convert(UTF8String,""))
但它没有。
replace
没有匹配替换的方法(:: DataArray {UTF8String,1}, :: UTF8String,:: UTF8String)
通常,此列中的值的格式为“£0,000.00”,我正在考虑替换“£”和“,”并将它们转换为Float类型,因为我需要将它们与另一列相乘。
答案 0 :(得分:1)
您可以使用map
:
dfProducts[:StandardCost] = map(x->replace(x, "£", convert(UTF8String,"")), dfProducts[:StandardCost])
编辑:如果你想在其他地方保持这种解决方法,你可以扩展该方法(即"可能提高可读性")
Base.replace(a::DataArray{UTF8String,1}, s::UTF8String, r::UTF8String) = map(x->replace(x, s, r),a)
#...
dfProducts[:StandardCost] = replace(dfProducts[:StandardCost], "£", convert(UTF8String,""))
请注意,这两种方法都不是最佳计算方式或连续内存分配方式,但我认为这超出了问题的范围