如何将标记的关键字行和权重分解为关键字的列

时间:2019-07-13 07:57:34

标签: python r list dictionary keyword

我正在寻找一种在r或python中获取字典的方式,从excel工作簿中获取字典数组并将其转换为每一列都是关键字,并且行具有关联的权重。请注意,每个单元格都有内容填充的关键字和相关的权重,格式如下:“名称:: abc;重量:: 2.0;名称:: def;重量:: 40.03”。

[输入]

 ID | keywords  
 1  | (name : abc; weight : 2.0)  
 2  | (name : def; weight : 3.1; name : abc; weight : 32.1)  
 3  | (name : ghi; weight 3.0)

[输出]

 ID | abc | def | ghi   
 1  | 2.0 | 0   | 0  
 2  | 32.1| 3.1 | 0  
 3  | 0   | 0   | 3.0  

因此,关键在于每个关键字前面都带有“ name ::”,后跟“; weight ::”,表示权重,尽管每个关键字的字符数没有设置限制用于重量的数字。同样,关键字的顺序也不尽相同。

我试图将字符串转换成字典,然后尝试使用Joris的修订(来自Splitting dictionary/list inside a Pandas Column into Separate Columns)来转换字典数组,但无济于事。

我还尝试过重新格式化源文件以删除名称和权重标签。

df_dict = df.to_dict()

df[:,1].apply(pd.Series)

但是这会返回typeError:'(slice(None,None,None),1)'是无效的密钥

而且我开始相信,如果我有一列字典要相对于上面提到的解决方案中的单行进行转换,那么该解决方案将行不通。

0 个答案:

没有答案