如何在Pandas中统计文本列的换行符(行数)数量?
Pandas统计DataFrame文本列的换行符数量
核心逻辑
和你提到的Excel公式逻辑完全一致:用单元格文本的原长度,减去替换掉所有换行符后的文本长度,差值就是换行符的数量。Excel里用CHAR(10)代表换行符,对应Python里的\n。
两种实现方式
方式一:对标Excel公式写法
直接复刻Excel的LEN(A2)-LEN(SUBSTITUTE(A2,CHAR(10),""))逻辑:
import pandas as pd # 示例数据 df = pd.DataFrame({ 'text': [ '第一行\n第二行\n第三行', '无换行的单行文本', '\n开头带换行', '' ] }) # 新增列存储换行符数量 df['换行符数量'] = df['text'].str.len() - df['text'].str.replace('\n', '', regex=False).str.len()
方式二:更简洁的直接统计
用Pandas的str.count方法直接统计每个单元格中\n的出现次数,代码更短:
df['换行符数量'] = df['text'].str.count('\n')
特殊情况处理
如果你的文本里是Windows风格的\r\n换行符,需要先统一转换或者直接统计:
# 先把所有\r\n转成\n,再统计 df['text'] = df['text'].str.replace('\r\n', '\n', regex=False) df['换行符数量'] = df['text'].str.count('\n') # 或者直接统计\r\n df['换行符数量'] = df['text'].str.count('\r\n')
- 空单元格会返回0,和Excel公式的表现一致。
内容的提问来源于stack exchange,提问作者Green
相关产品推荐
相关产品推荐

