【发布时间】:2018-04-25 14:08:04
【问题描述】:
我在使用大型 Pandas DataFrame(1 500 000 行)重建句子时遇到问题。我的目标是将单词中的句子重构为一个新的数据框,以便每行有一个句子。我的 DataFrame 中有两个系列:单词和标签。每个句子都用感叹号分隔。最重要的是,我想使用原始 DataFrame 中的标签为形容词和名词/动词创建两个单独的系列到新的 DataFrame 中。所以这就是我所拥有的:
>df
word tag
bike NOUN
winner NOUN
! PUNCTUATION
red ADJECTIVE
car NOUN
is VERB
fast ADJECTIVE
! PUNCTUATION
... ...
这就是我想要的
>df2
sent nounverb adj
bike winner bike winner None
red car is fast car is red fast
...
我一直找不到解决方案,因为我是 Python 的初学者,所以我无法想出一个 for loop 来为我做这件事。
编辑:
感谢 Andy 和 Jesús 的快速解答。安迪的回答很顺利,尽管在创建新的 DataFrame 时我需要稍微修改一下。需要将单词称为字符串。
df2 = pd.DataFrame({
"sent": g.apply(lambda sdf: " ".join(sdf.word.astype(str))),
"nounverb": g.apply(lambda sdf: " ".join(sdf[sdf.is_nounverb].word.astype(str))),
"adj": g.apply(lambda sdf: " ".join(sdf[sdf.tag == "ADJECTIVE"].word.astype(str)))
})
【问题讨论】:
标签: python string pandas dataframe nlp