2016-02-01 133 views
2

我正在用Python(Nltk,Pandas)进行一些文本分析,并需要一些帮助。我仍然是一名编程初学者。熊猫:将数据帧列合并到列表

我有一个PoS标记数据帧(1000行,5列)。

列名:编号(在索引),身份证,标题,问题和答案

#2 Example rows for Question: 

[('I', 'PRON'), ('am', 'VERB'), ('working', 'VERB'),('website', 'NOUN')] 
[('Would', 'VERB'), ('you', 'PRON'), ('recomme...)] 

#2 Example rows for Answers: 

[('This', 'DET'), ('is', 'VERB'), ('not', 'ADV'),('website', 'NOUN')] 
[('There', 'DET'), ('is', 'VERB'), ('a', 'DET'...)] 

目标:

1)一个列表(不STR)与所有1000 PoS Tagged Questions

2.)onelist(not str)with all 1000 PoS Tag GED答案

3)一个所有1000个过程标签和解答问题

我试过到目前为止是要合并的问题列中的所有行,但我的结果是一样名单(不STR) :

[[('I', 'PRON'), ('am', 'VERB'),..],[('Would', 'VERB'), 
('you', 'PRON'), ('recomme...)],[(.....)]] 

我想我加入他们是一个错误。我怎样才能做到这一点,以实现一个列表,看起来像这样:

[('I', 'PRON'), ('am', 'VERB'), ('working', 'VERB'),.....] 

为完整的列。 Beneres答案后

编辑:

THX您的快速答复。 的.sum()是我的方法,我以前做过,但结果是:

print (df['Merged']) 
0  [('Does', 'NOUN'), ('anyone', 'NOUN'), ('know'... 
1  [('I', 'PRON'), ('am', 'VERB'), ('building', '... 
2  [('I', 'PRON'), ('am', 'VERB'), ('wondering', ... 
3  [('I', 'PRON'), ('am', 'VERB'), ('working', 'V... 

我需要的是

print (df['Merged']) 
0  [('Does', 'NOUN'), ('anyone', 'NOUN'), ('know'... 
     ('I', 'PRON'), ('am', 'VERB'), ('building', '... 
     ('I', 'PRON'), ('am', 'VERB'), ('wondering', ... 
     ('I', 'PRON'), ('am', 'VERB'), ('working', 'V...] 

编辑2: 解决

回答

0

我解决了这个问题,奇怪的是,不知道这是不是一个很好的解决方案,但它的工作原理:

from ast import literal_eval 

# sum all columns and replace resulting "][" between columns with ", " 
# change str to list with literal_eval 
allQuestions = literal_eval(dfQuestion.sum().replace("][", " ,")) 
allAnswers = literal_eval(dfAnswers.sum().replace("][", " ,")) 
allPosts = allQuestions + allAnswers 

我希望这可以帮助别人。

0

如果我深知,你只需要做:

df['Merged'] = df['Questions'] + df['Answers'] 

它合并问题和答案,然后做

df.sum() 

它合并(总和)所有列表。

例子:

import pandas as pd 

df = pd.DataFrame({'Q':[[('I', 'PRON'), ('am', 'VERB')], [('You', 'PRON'), ('are', 'VERB')]], 
       'A':[[('This', 'DET'), ('is', 'VERB')], [('Sparta', 'NOUN'), ('bitch', 'VERB')]]}) 
df['Merged'] = df['A'] +df['Q'] 

则:

df.sum() 

看起来是这样的:

A   [(This, DET), (is, VERB), (Sparta, NOUN), (bit... 
Q   [(I, PRON), (am, VERB), (You, PRON), (are, VERB)] 
Merged [(This, DET), (is, VERB), (I, PRON), (am, VERB... 
dtype: object 

然后,我不太清楚有关目标3的格式,请提供更多的细节如果这不是你想要的。