Dataframe 如何在Julia中将列数据类型从float更改为string?

Dataframe 如何在Julia中将列数据类型从float更改为string?,dataframe,julia,Dataframe,Julia,我正在尝试将数据帧格式的一列从float转换为string。我试过了 df = readtable("data.csv", coltypes = {String, String, String, String, String, Float64, Float64, String}); dfB[:serial] = string(dfB[:serial]) 但是我被投诉了 syntax: { } vector syntax is discontinued 我也试过 df = readtable

我正在尝试将数据帧格式的一列从float转换为string。我试过了

df = readtable("data.csv", coltypes = {String, String, String, String, String, Float64, Float64, String});
dfB[:serial] = string(dfB[:serial])
但是我被投诉了

syntax: { } vector syntax is discontinued
我也试过

df = readtable("data.csv", coltypes = {String, String, String, String, String, Float64, Float64, String});
dfB[:serial] = string(dfB[:serial])
但它也不起作用。所以,我想知道在Julia中更改列数据类型的正确方法是什么


thx

在您第一次尝试时,Julia会告诉您问题所在-您无法使用
{}
生成向量,您需要使用
[]
。此外,关键字参数的名称应该是
eltypes
,而不是
coltypes


在第二次尝试中,你没有一个浮点数,你有一个浮点数向量。因此,要更改类型,需要更改所有元素的类型。在Julia中,向量上的元素操作由“点”语法概括,例如
string.(collect(dfB[:serial]))
。当前需要
collect
,以便首先将DataArray强制转换为普通阵列–如果DataArray包含NAs,则此操作将失败。我知道数据帧接口仍然很不稳定,所以像这个ATM机可能会有一些麻烦。

谢谢你的回答。不幸的是,这两种方法在我的情况下都不起作用。第一个建议的解决方案提出了“MethodError:no method matching readtable(::String;coltypes=DataType[String,String,String,Float64,Float64,String]),第二个建议的解决方案提出了“MethodError:Cannot
convert
将String类型的对象转换为Int64类型的对象这可能是调用构造函数Int64(…),因为类型构造函数回退到转换方法。“。知道为什么吗?
字符串。(x)
调用绝对不应该引发该异常。似乎您正在尝试从
String
转换为
Int
,而不是相反。你能显示你运行的代码吗?可能是一个演示数据集?它确实会导致错误,抱歉。真奇怪。目前的一个解决方法是
string.(collect(df[:serial]))
,它在转换为string.untested之前将数据数组转换为数组-但是@bensw它至少应该是
eltypes
而不是
coltypes
@Michael K.Borreard
string.(collect(df[:serial])
eltypes
也适用于
[]
,但不适用于
{}
。您还可以更新第一次尝试的解决方案吗?我将把你的答案标为正确答案。非常感谢。