Python Pandas 将列截断到特定长度而不截断最后一个字
Python Pandas Truncate a column to a specific length without cutting the last word
我尝试将列的长度减少到 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)
请注意,反过来(先切断,然后才截断)可能并且将会导致句子末尾的 half-words。
lambda 表达式是如何工作的?
- 给定
x
,当前句子
- 它检查句子长度是否超过 50 个字符
2.1.如果是,它首先截断为 50 个字符,然后删除最后一个单词
2.2.否则,句子少于 50 个字符,句子保持原样
我尝试将列的长度减少到 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)
请注意,反过来(先切断,然后才截断)可能并且将会导致句子末尾的 half-words。
lambda 表达式是如何工作的?
- 给定
x
,当前句子 - 它检查句子长度是否超过 50 个字符
2.1.如果是,它首先截断为 50 个字符,然后删除最后一个单词
2.2.否则,句子少于 50 个字符,句子保持原样