2016-04-25 135 views
0

我的數據刪除括號是元組的列表:從熊貓數據幀

def find_ngrams(verbatims, n): 
    return zip(*[verbatims[i:] for i in range(n)]) 

bigrams = find_ngrams(verbatims, 4) 
print bigrams 

[((u'a', u'grossir', u'et', u'a'), 74), ((u'un', u'avis', u'de', u'passage'), 68), ((u'le', u'facteur', u'est', u'pass\xe9'), 67), ((u'V\xeatements', u'+', u'ou', u'-'), 63), ((u'+', u'ou', u'-', u'similaires'), 62), ((u'vous', u'ne', u'pouvez', u'pas'), 54), ((u'sinon', u'une', u'petite', u'recherche'), 53)]

有序的和使用計數器()中計數most_common()方法:

ngrams = Counter(bigrams).most_common() 

FIY我正在對大型文本數據進行n-gram分析。對於n元信息:https://en.wikipedia.org/wiki/N-gram 我有熊貓陰涼數據幀:

DF = pandas.DataFrame(ngrams) 
DF.columns = ['ngram','occurence'] 
print DF 
               ngram occurence 
0        (a, grossir, et, a)   74 
1       (un, avis, de, passage)   68 
2       (le, facteur, est, passé)   67 

除了我正克用括號括起來的,我不希望出現這種情況。我知道我可以使用基本的搜索/替換方法,但我希望以更加計算機科學的邏輯方式來完成。此外,如果我進行搜索/替換,我可能會在文本中丟失一些括號。

我不確定這裏有什麼確切的問題,但我想它與我的列表中的嵌套元組有關。那麼,如何將一個元組列表添加到數據框中,而不需要使用括號?

編輯:根據要求,這裏是我的預期輸出:

           ngram occurence 
0         a, grossir, et, a   74 
1        un, avis, de, passage   68 
2       le, facteur, est, passé   67 

感謝,

+1

什麼是你期望的輸出?你要求的是不明確的,沒有提到。 –

+0

我用我的預期輸出編輯了我的問題。 –

+0

我沒有得到相同的結果,只是當我得到DF ...你能重新檢查你的數據嗎? –

回答

1

你是不是簡單地尋找:

In [309]: pd.DataFrame([(','.join(el[0]), el[1]) for el in bigrams]) 
Out[309]: 
          0 1 
0    a,grossir,et,a 74 
1   un,avis,de,passage 68 
2  le,facteur,est,passé 67 
3   Vêtements,+,ou,- 63 
4   +,ou,-,similaires 62 
5   vous,ne,pouvez,pas 54 
6 sinon,une,petite,recherche 53