计算基函数的使用次数,Python
Counting how many times a base function is being used, Python
我希望能够计算 strip 函数的次数以及 for 循环中删除了多少空格:
可重现的例子:
df = pd.DataFrame({'words': ['hi', 'thanks ', 'for ', 'helping '],
'more_words': ['i ', ' have', 'been', 'stuck'],
'even_more_words': ['four ', ' ages', 'word' , 'more words']})
count = 0
# striping white spaces
for col in df.columns:
df[col] = df[col].str.strip()
print("I stripped this many blank spaces:", count)
输出应该是 7,因为它分割了 7 个空格
实现此目的最简单的方法是什么?
任何提示或要研究的领域将不胜感激。
最简单的方法是存储原始字符串长度,然后从中减去新长度。唯一的变化是 strip
操作,所以这应该是正确的。
df = {'words': ['hi', 'thanks ', 'for ', 'helping '],
'more_words': ['i ', ' have', 'been', 'stuck'],
'even_more_words': ['four ', ' ages', 'word' , 'more words']}
count = 0
# stripping white spaces
for col in df:
count += sum(len(x) for x in df[col])
df[col] = [x.strip() for x in df[col]]
count -= sum(len(x) for x in df[col])
print("I stripped this many blank spaces:", count)
这是一个更小的示例,无需使用 Pandas,但思路是一样的。
使用 .apply 函数,您可以使用 pandas.
同时剥离和计算所有值
import pandas as pd
df = pd.DataFrame({'words': ['hi', 'thanks ', 'for ', ' helping '],
'more_words': ['i ', ' have', 'been', 'stuck'],
'even_more_words': ['four ', ' ages', 'word' , 'more words']})
count = 0
# striping white spaces
def count_strip(string):
global count
striped_string = string.strip()
count+= len(string) - len(striped_string)
return striped_string
for col in df.columns:
df[col] = df[col].apply(count_strip)
print("I striped this many blank spaces:", count)
输出
I striped this many blank spaces: 8
我希望能够计算 strip 函数的次数以及 for 循环中删除了多少空格:
可重现的例子:
df = pd.DataFrame({'words': ['hi', 'thanks ', 'for ', 'helping '],
'more_words': ['i ', ' have', 'been', 'stuck'],
'even_more_words': ['four ', ' ages', 'word' , 'more words']})
count = 0
# striping white spaces
for col in df.columns:
df[col] = df[col].str.strip()
print("I stripped this many blank spaces:", count)
输出应该是 7,因为它分割了 7 个空格
实现此目的最简单的方法是什么? 任何提示或要研究的领域将不胜感激。
最简单的方法是存储原始字符串长度,然后从中减去新长度。唯一的变化是 strip
操作,所以这应该是正确的。
df = {'words': ['hi', 'thanks ', 'for ', 'helping '],
'more_words': ['i ', ' have', 'been', 'stuck'],
'even_more_words': ['four ', ' ages', 'word' , 'more words']}
count = 0
# stripping white spaces
for col in df:
count += sum(len(x) for x in df[col])
df[col] = [x.strip() for x in df[col]]
count -= sum(len(x) for x in df[col])
print("I stripped this many blank spaces:", count)
这是一个更小的示例,无需使用 Pandas,但思路是一样的。
使用 .apply 函数,您可以使用 pandas.
同时剥离和计算所有值import pandas as pd
df = pd.DataFrame({'words': ['hi', 'thanks ', 'for ', ' helping '],
'more_words': ['i ', ' have', 'been', 'stuck'],
'even_more_words': ['four ', ' ages', 'word' , 'more words']})
count = 0
# striping white spaces
def count_strip(string):
global count
striped_string = string.strip()
count+= len(string) - len(striped_string)
return striped_string
for col in df.columns:
df[col] = df[col].apply(count_strip)
print("I striped this many blank spaces:", count)
输出
I striped this many blank spaces: 8