Python计数前导和尾随空白

时间:2018-11-22 20:26:52

标签: python-3.x pandas dataframe

我有以下数据框请注意the的开头和结尾空白

import pandas as pd
data = ['foo ', ' bar', ' baz ', 'beetle juice']
df = pd.DataFrame(data)

我需要计算所有带有前导和/或尾随空格的字符串,但忽略字符串中间的空格。

因此,在上面的示例中,空白计数应等于3。

执行此操作的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

此代码可以满足您的要求。

import pandas as pd

data = ['foo ', ' bar', ' baz ', 'beetle juice']

df = pd.DataFrame(data)
count = 0

for i,row in df.iterrows():
    if row[0][0] == " " or row[0][-1] == " ":
        count += 1

print(count)

答案 1 :(得分:1)

借助.str accessor,您可以在一行中实现它:

(df[0].str.startswith(" ") | df[0].str.endswith(" ")).sum()

答案 2 :(得分:0)

以下是使用defaultdict模块中的collection的解决方案:

from collections import defaultdict as df

data = ['foo ', ' bar', ' baz ', 'beetle juice']
result = df(int)

for elm in data:
    if elm.startswith(' '):
        result['leading'] += 1
    elif elm.endswith(' '):
        result['trailing'] += 1

print(result)
print(dict(result))
count = sum(k for k in result.values())
print(count)

输出:

defaultdict(<class 'int'>, {'trailing': 1, 'leading': 2})
{'trailing': 1, 'leading': 2}
3