Python Pandas将列截断为特定长度而不会切掉最后一个单词

问题描述

我尝试将列的长度减少到50,并使用此lambda fct:

df['col_1'] = df['col_1'].apply(lambda x: x[:50])

除了切出最后一个单词的事实外,它的工作效果还不错,我需要一种即使最后一个单词的长度减少也会删除最后一个单词的解决方案。

谢谢你对此的任何建议

解决方法

截断最多50个字符,并截断最后一个单词:

df['col_1'] = df['col_1'].apply(lambda x: ' '.join(x[:50].split(' ')[:-1]) if len(x) > 50 else x)

请注意,反过来(首先切断,然后才截断)可能并且将导致句子末尾出现半词。

lambda表达式如何工作?

  1. 它被赋予x的当前句子,可用于
  2. 它检查句子长度是否超过50个字符
    2.1。如果是,它将首先截断为50个字符,然后删除最后一个单词
    2.2。否则,该句子少于50个字符,该句子保持完整