熊猫:计算一列中的空字符串

dai*_*yue 2 python string series dataframe pandas

我试图找到仅包含空字符串的列中的单元格数量''。的df样子:

currency
USD
EUR
ILS
HKD
Run Code Online (Sandbox Code Playgroud)

代码是:

df['currency'].str.contains(r'\s*')
Run Code Online (Sandbox Code Playgroud)

但是代码也将具有实际字符串值的单元格识别为包含空字符串。

我想知道如何解决该问题,因为它只能检测仅包含空字符串的单元格。

jpp*_*jpp 10

几种方法。使用numpy通常更为有效。

import pandas as pd, numpy as np

df = pd.DataFrame({'currency':['USD','','EUR','']})

(df['currency'].values == '').sum()           # 2

len(df[df['currency'] == ''])                 # 2

df.loc[df['currency'] == ''].count().iloc[0]  # 2
Run Code Online (Sandbox Code Playgroud)

  • 这是第一个选项。`df['currency'].values` 提取了 `numpy` 数组表示。结果是一个布尔“numpy”数组。`sum` 然后成为 `numpy` 数组的 *method*。 (2认同)