我在使用大型 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
... ...
Run Code Online (Sandbox Code Playgroud)
这是我想要的
>df2
sent nounverb adj
bike winner bike winner None
red car is fast car is red fast
...
Run Code Online (Sandbox Code Playgroud)
我一直无法为此找到解决方案,而且由于我是 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": …Run Code Online (Sandbox Code Playgroud)