You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas统计DataFrame列中仅含空字符串的单元格数量?

解决DataFrame中统计仅空字符串单元格的问题

嘿,我来帮你搞定这个问题!你之前用的df['currency'].str.contains(r'\s*')之所以会误判,是因为\s*这个正则表示零个或多个空白字符——正常的非空字符串(比如'USD')里虽然没有空白,但“零个空白”也是符合这个正则的,所以contains会认为所有单元格都匹配,这就导致了误识别。

要准确统计仅含空字符串(或仅空白字符)的单元格,分两种情况处理:

1. 严格匹配仅空字符串''

如果你要找的是完全等于空字符串的单元格,直接用等于判断就最直观高效:

empty_count = (df['currency'] == '').sum()

2. 匹配仅空白字符(包括空字符串)

如果你的数据里存在全是空格、制表符这类空白的单元格,也想把它们统计进来,可以用str.fullmatch()配合正则r'^\s*$'——这个正则表示“从开头到结尾,只有零个或多个空白字符”,而fullmatch会要求整个字符串完全匹配正则(和contains的“部分匹配”本质不同):

blank_count = df['currency'].str.fullmatch(r'^\s*$').sum()

举个实际例子

假设你的DataFrame是这样的:

import pandas as pd
df = pd.DataFrame({
    'currency': ['USD', 'EUR', '', 'ILS', '  ', 'HKD']
})
  • 用第一种方法统计空字符串:(df['currency'] == '').sum() → 结果是1(只有第三个单元格是空字符串)
  • 用第二种方法统计所有空白类单元格:df['currency'].str.fullmatch(r'^\s*$').sum() → 结果是2(第三个和第五个全空格的单元格)

这样就能精准统计你需要的单元格数量啦!

内容的提问来源于stack exchange,提问作者daiyue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:07:50