Python 3.x 如何读取python3中每行的起始N个单词

Python 3.x 如何读取python3中每行的起始N个单词,python-3.x,pandas,Python 3.x,Pandas,我正在阅读一个列中有自由文本的excel。现在从pandas中读取该文件后,我想限制有文本的列从每行开始只读取N个单词。我什么都试过了,但没能成功 data[“text”]=我要去上学,我从市场上买了一些东西 但我只想读5个单词。这样它就可以像下面这样了 data[“text”]=我要上学了 我希望对data[“text”]列的每一行执行相同的操作 我们将非常感谢你的帮助 def first_k(s: str, k=5) -> str: s = str(s) # just in

我正在阅读一个列中有自由文本的excel。现在从pandas中读取该文件后,我想限制有文本的列从每行开始只读取N个单词。我什么都试过了,但没能成功

data[“text”]=我要去上学,我从市场上买了一些东西

但我只想读5个单词。这样它就可以像下面这样了

data[“text”]=我要上学了

我希望对data[“text”]列的每一行执行相同的操作

我们将非常感谢你的帮助

def first_k(s: str, k=5) -> str:
    s = str(s)  # just in case something like NaN tries to sneak in there
    first_words = s.split()[:k]
    return ' '.join(first_words)
然后,应用该函数:

data['text'] = data['text'].apply(first_k)

谢谢但是我在尝试你的建议时遇到了这个错误。AttributeError:“Series”对象没有属性“split”@desertnaut:下次会处理好的嗨!虽然这可能会提供答案,但通常不鼓励在StackOverflow中只保留代码答案。请解释为什么这是一个解决方案,因为它将帮助OP和未来的访问者。谢谢
data["text"] = [' '.join(s.split(' ')[:5]) for s in data["text"].values]