Python Count Лидирующие и конечные пробелы - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть следующий фрейм данных обратите внимание на начальные и конечные пробелы в строках :

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

Мне нужно сосчитать все строки, которые имеют начальные и \ или конечные пробелы, но игнорируют пробелыв середине укуса.

Итак, в приведенном выше примере количество пробелов должно быть равно 3.

Какой лучший способ сделать это?

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Вот решение с использованием 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
0 голосов
/ 23 ноября 2018

С помощью .str accessor вы можете сделать это в одной строке:

(df[0].str.startswith(" ") | df[0].str.endswith(" ")).sum()
0 голосов
/ 22 ноября 2018

Этот код делает то, что вы хотите.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...