我试图将列的长度减少到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表达式是如何工作的?
- 它被赋予
x
,一个当前要处理的句子 - 它检查句子长度是否超过50个字符
2.1。如果是,它首先截断到50个字符,然后删除最后一个单词
2.2。否则,句子少于50个字符,句子保持完整