如何筛选Pandas DataFrame中含空格的行并统计行数
Pandas筛选任意单元格含空格的行并统计行数
步骤1:生成每行的布尔判断标记
先对DataFrame的每个单元格检查是否包含空格,再判断每行是否存在至少一个含空格的单元格,得到一个布尔序列:
import pandas as pd li = [['erer','sfsddf', 'dfdf dfdf'],['erer','sfs/ df', 'dfdf dfdf'],['erer','sfsd/df', 'dfdf dfdf'],['er/er','sfsddf', 'dfdf dfdf'],['er/er','sfsddf', 'dfdf dfdf'],['er er','sfsddf', 'dfdf dfdf']] df = pd.DataFrame(li, columns=[str(i) for i in range(3)]) # 生成每行是否存在含空格单元格的布尔序列 has_space = df.apply(lambda col: col.str.contains(' ', na=False)).any(axis=1)
说明:
col.str.contains(' ', na=False)检查列中每个元素是否含空格,any(axis=1)判断每行是否至少有一个True(即该行有单元格含空格)
步骤2:筛选原DataFrame
用上述布尔序列过滤原DataFrame,保留任意单元格含空格的行:
# 筛选出符合条件的行 filtered_df = df[has_space]
步骤3:统计行数
直接通过len()或shape[0]获取筛选后的数据行数:
# 统计行数 row_count = len(filtered_df) # 或者用 row_count = filtered_df.shape[0] print(f"含空格的行数:{row_count}")
简化写法
可以把步骤合并成一行代码:
filtered_df = df[df.apply(lambda col: col.str.contains(' ', na=False)).any(axis=1)] row_count = len(filtered_df)
内容的提问来源于stack exchange,提问作者JFerro
相关产品推荐
相关产品推荐

