Julia 在Dataframe中将列从字符串转换为Int

Julia 在Dataframe中将列从字符串转换为Int,julia,Julia,假设我有一个数据帧 df=DataFrame(A=rand(5),B=["8", "9", "4", "3", "12"]) 我要做的是将列B转换为Int类型,所以我使用 df[!,:B] = convert.(Int64,df[!,:B]) 但我得到了警告: 'Cannot Convert an object of type string to an object of type Int64

假设我有一个数据帧

df=DataFrame(A=rand(5),B=["8", "9", "4", "3", "12"])
我要做的是将列B转换为Int类型,所以我使用

df[!,:B] = convert.(Int64,df[!,:B])
但我得到了警告:

'Cannot Convert an object of type string to an object of type Int64'

你能告诉我为什么我错了吗?

我相信你想要的是
df[!,:B]=Int64.(df[!,:B])
。Convert仅在类型之间定义,您可以在不丢失信息的情况下进行转换(即在本例中,您不能将任意
字符串
转换为
Int

您要查找的是函数,该函数使用点符号在列中的元素上广播:

df = DataFrame(A = rand(5), B = ["8", "9", "4", "3", "12"])
df[!, :B] = parse.(Int64, df[!, :B])

请注意,在此处和答案中编写
df.B
而不是
df[!,:B]
就足够了。