Python 通过每行应用函数确定句子';结构

Python 通过每行应用函数确定句子';结构,python,pandas,spacy,Python,Pandas,Spacy,我正在尝试添加一个新列,其中包含此数据集每行的句子结构: Sentence I ate an apple pie, yesterday. I ate an orange, yesterday. I eat a lemon, today. 为了将此函数应用于每一行,我编写了以下内容: def stru(): nlp = spacy.load('en_core_web_sm',disable=['ner','textcat']) doc = nlp(f

我正在尝试添加一个新列,其中包含此数据集每行的句子结构:

Sentence
    I ate an apple pie, yesterday. 
    I ate an orange, yesterday.
    I eat a lemon, today. 
为了将此函数应用于每一行,我编写了以下内容:

def stru():
    nlp = spacy.load('en_core_web_sm',disable=['ner','textcat'])

    doc = nlp(file.Sentence)
    pos = ""
    for token in doc:
        pos += token.pos_ + " "
    return
然后
df.Struct=df.句子.apply(stru)

我的预期输出如下:

Sentence                                  Struct
    I ate an apple pie, yesterday.        PRONOUN VERB NOUN ADJECTIVE
    I ate an orange, yesterday.           PRONOUN VERB NOUN ADJECTIVE         
    I eat a lemon, today.                 PRONOUN VERB NOUN ADJECTIVE

您能告诉我它出了什么问题吗?

您需要将特定语句传递给函数,并“返回”结果,即pos:

def stru(sentence):
    nlp = spacy.load('en_core_web_sm',disable=['ner','textcat'])
    doc = nlp(sentence)
    pos = ""
    for token in doc:
        pos += token.pos_ + " "
    return pos

我会尝试:doc=nlp(句子)我会尽快标记它,gtomer:)我只是想了解如何获得预期的输出我做了另一次更正。您需要返回结果=位置。请参见上文感谢gtomer。我对句子(论点)有疑问:这不是我的专栏,不是吗?所以,当我将函数应用于我的列时,我应该传递哪个参数?一次传递一行