我有以下数据框请注意the的开头和结尾空白
:import pandas as pd
data = ['foo ', ' bar', ' baz ', 'beetle juice']
df = pd.DataFrame(data)
我需要计算所有带有前导和/或尾随空格的字符串,但忽略字符串中间的空格。
因此,在上面的示例中,空白计数应等于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