Python 熊猫:将数据框列合并到列表中
我正在用Python(Nltk,Pandas)做一些文本分析,需要一些关于我的数据框架的帮助。我还是一个编程初学者 我有一个PoS标记的数据框(1000行,5列) 列名:编号(此在索引中)、Id、标题、问题、答案Python 熊猫:将数据框列合并到列表中,python,pandas,merge,nltk,Python,Pandas,Merge,Nltk,我正在用Python(Nltk,Pandas)做一些文本分析,需要一些关于我的数据框架的帮助。我还是一个编程初学者 我有一个PoS标记的数据框(1000行,5列) 列名:编号(此在索引中)、Id、标题、问题、答案 #2 Example rows for Question: [('I', 'PRON'), ('am', 'VERB'), ('working', 'VERB'),('website', 'NOUN')] [('Would', 'VERB'), ('you', 'PRON'), ('
#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标记问题
2.一个列表(非str),包含所有1000个PoS标记答案
3.一个列表(非str),包含所有1000个PoS标记的答案和问题
到目前为止,我尝试合并问题列中的所有行,但结果如下:
[[('I', 'PRON'), ('am', 'VERB'),..],[('Would', 'VERB'),
('you', 'PRON'), ('recomme...)],[(.....)]]
我想我加入他们是个错误。如何正确执行此操作以获得如下列表:
[('I', 'PRON'), ('am', 'VERB'), ('working', 'VERB'),.....]
对于完整列
在Beneres回答后编辑:
谢谢你的快速回答。
.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:
已解决如果我理解得很好,您只需执行以下操作:
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']
然后:
看起来像这样:
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的格式,如果这不是您想要的,请提供更多详细信息。我以一种奇怪的方式解决了这个问题,不知道这是否是一个好的解决方案,但它是有效的:
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
我希望这能帮助别人
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