我正在寻找一种在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)'是无效的密钥
而且我开始相信,如果我有一列字典要相对于上面提到的解决方案中的单行进行转换,那么该解决方案将行不通。