现在有一张表,其中一个字段feature是由2945个特征按逗号合并在一起的,请问怎么把这列按逗号进行拆分成多列,还原成合并前的样子。
Sql和python分别怎么处理
这是我项目中用到的转换函数,请笑纳。
/****** Object: UserDefinedFunction [dbo].[GetDictionaryValue] Script Date: 08/13/2021 09:59:05 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER function [dbo].[GetDictionaryValue](@in nvarchar(255))
returns nvarchar(255)
as
begin
-- 先决条件:D_Code组合必须是用','隔开
-- 函数用途:可以将DictionaryValue表中的 任意D_Code字段 转化 成 D_Name 并使用逗号分割开。
declare @out nvarchar(255) = '';
declare @index int;
declare @name nvarchar(255) = '';
declare @code nvarchar(255);
while(LEN(@in)>0)
begin
select @index = CHARINDEX(',', @in, 0); --找到第一个逗号
if(@index>0)
begin
set @code =Left(@in,@index-1);
end;
else
begin
set @code = @in;
set @index = LEN(@in);
end;
set @in = RIGHT(@in,LEN(@in)-@index); --剩余部分
select @name = D_Name from DictionaryValue where D_Code = @code;
if(LEN(@out)=0)
set @out =@out + @name;
else
set @out =@out +','+ @name;
end;
return @out;
end;
可以说明白些吗? 是将feature列拆成2945列吗?最终要得到什么数据结构? dataframe? 还是写入到数据库表中?最好用个例子说明一下.