2016-02-01 170 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的格式,請提供更多的細節如果這不是你想要的。