Julia拆分DataFrame列并提取第2个元素的技术问题
解决DataFrame列拆分后逐行提取第2个元素的问题
你当前的操作是对整列字符串做split广播,得到的是一个由子向量组成的大向量,直接加[2]会提取大向量里的第二个子列表,而非每个子列表的第二个元素。
以下是几种正确的实现方式:
方式1:提取元素生成向量
getindex.(split.(barDF[!, :Dashname], "-"), 2)
或者用更直观的列表推导式:
[x[2] for x in split.(barDF[!, :Dashname], "-")]
方式2:在DataFrame中新增拆分后的列
如果需要把结果保留为DataFrame的新列,用transform结合ByRow处理每一行:
transform(barDF, :Dashname => ByRow(x -> split(x, "-")[2]) => :SecondElement)
说明
- 两种方式都是先对每行字符串做split拆分,再针对每个拆分后的子向量提取第2个元素;
- 方式2会直接在原DataFrame后新增名为
SecondElement的列,更适合后续数据处理。
内容的提问来源于stack exchange,提问作者andrdpedro
相关产品推荐
相关产品推荐

