2015-08-31 52 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,"")) 

很介意那這兩種方法都不是最佳的計算方式或連續內存分配方式,但我想這超出了問題的範圍