2015-08-31 42 views
0

如何重命名数据框中特定列中的所有值? 我在想这样的事情应该可以工作:重命名列中的值

dfProducts[:StandardCost] = replace(dfProducts[:StandardCost], "£", convert(UTF8String,"")) 

但它没有。

replace没有方法匹配替换(:: DataArray中{UTF8字符串,1}, :: UTF8字符串,:: UTF8字符串)

通常在此列中的值是在格式“£0,000.00 “我正在考虑替换”£“和”,“并将它们转换为Float类型,因为我需要将它们与另一列相乘。

回答

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,"")) 

很介意那这两种方法都不是最佳的计算方式或连续内存分配方式,但我想这超出了问题的范围