如何在Pandas DataFrame中按句号分割文本并计算各段长度(去空格)
解决方案
你可以编写function_len函数,先按句号分割文本,再对每个分割后的文本块去除开头空格,最后计算每个块的长度:
import pandas as pd def function_len(text): # 按句号分割文本 chunks = text.split('.') # 对每个块去除开头空格后计算长度,生成结果列表 return [len(chunk.lstrip()) for chunk in chunks]
测试验证
用你给出的示例测试:
- 测试1:
text1 = 'We are happy.We are happy' print(function_len(text1)) # 输出 [13, 13]
- 测试2:
text2 = 'we are happy. we are happy' print(function_len(text2)) # 输出 [13, 13]
应用到Pandas DataFrame
假设你的DataFrame结构如下:
df = pd.DataFrame({ 'text': [ 'We are happy.We are happy', 'we are happy. we are happy', 'Hello. This is a test. End' ] }) df['output'] = df['text'].apply(function_len)
运行后df['output']的结果为:
0 [13, 13] 1 [13, 13] 2 [5, 14, 3]
说明:lstrip()只会移除每个文本块开头的空格,不会影响块中间或结尾的空格,完全匹配你的需求。如果遇到分割后是空字符串的情况(比如文本以句号开头或结尾),lstrip()处理后还是空字符串,长度为0,这也是合理的行为。
内容的提问来源于stack exchange,提问作者noob4ever
相关产品推荐
相关产品推荐

