Dataframe 类型为:Dictionary的SFrame列

Dataframe 类型为:Dictionary的SFrame列,dataframe,graphlab,sframe,Dataframe,Graphlab,Sframe,当我跑步时: my_sframe['col_1'] = '' my_sframe['col_1'] = {} 我得到一个空白栏,这是我想要的 然而,当我跑步时: my_sframe['col_1'] = '' my_sframe['col_1'] = {} 我得到一个错误,表示意外的数据类型 SFrame API没有解决这个问题,如下所示: 我当时的理解是,SFrame列不能是字典 然而,出于好奇,我尝试了以下方法: my_sframe['col_1'] = graphlab.text

当我跑步时:

my_sframe['col_1'] = ''
my_sframe['col_1'] = {}
我得到一个空白栏,这是我想要的

然而,当我跑步时:

my_sframe['col_1'] = ''
my_sframe['col_1'] = {}
我得到一个错误,表示意外的数据类型

SFrame API没有解决这个问题,如下所示:

我当时的理解是,SFrame列不能是字典

然而,出于好奇,我尝试了以下方法:

my_sframe['col_1'] = graphlab.text_analytics.count_words('my_text')

type(my_sframe['col_1'][1])

out: dict
这个结果与我以前的理解完全相反

我想要的是一个dictionary列,每一行都有自己的dictionary,很像
。count\u words
只有我使用的是通过
import string
从零开始制作的word\u count dictionary

这是一条双向的道路,还是
.count\u words
是一个例外,我不应该期望能够重现这种数据转换

请告知

多谢各位

更新

以下是GitHub的一些相关信息:


我不确定这项技术是否能创造出我想要的,我还在尝试。如果有人对此有任何想法,请告诉我。

我仍然愿意接受一个更有效的答案,但与此同时,如果有人遇到过这个问题,这里有一种方法可以创建一个词典的SFrame列。我刚想出来:

def count_words(text):
    words = text.split()
    wordfreq = {}
    for x in words:
        if x not in wordfreq:
            wordfreq[x] = 0
        wordfreq[x] += 1
    return wordfreq

sframe['word_count'] = sframe['text'].apply(count_words)
您会注意到数据类型是dict。似乎有点复杂。我仍然想知道为什么我们不能对一个新列使用强制转换方法,而不是说error:unexpected data type