如何防止 Counter() 拆分我的字符串?
How do I keep Counter() from splitting up my strings?
所以我使用集合中的 Counter() 方法并尝试从数据框中读取列以获取特定国家/地区的计数。问题在于 Counter() 将读入的字符串拆分为单个字母。例如我是 运行 类似的东西:
from collections import Counter
country_counter = Counter()
my_list = ['US', 'US', 'Mex', 'Can', 'US', 'Can']
for x in my_list:
country_counter.update(x)
这给出了输出:
Counter({'U': 3, 'S': 3, 'M': 1, 'e': 1, 'x': 1, 'C': 2, 'a': 2, 'n': 2})
但我正在尝试:
Counter({'US': 3, 'Can': 2, 'Mex': 1})
关于如何更正此问题的任何帮助?我应该使用 Counter() 还是有更有效的方法?
您可以简单地将列表作为 Counter
的输入。目前您正在做的是遍历每个字符串并将其作为输入,因此如果您给它输入,计数器会考虑单个字母。
>>> from collections import Counter
>>> my_list = ['US', 'US', 'Mex', 'Can', 'US', 'Can']
>>> c=Counter(my_list)
>>> c
Counter({'US': 3, 'Can': 2, 'Mex': 1})
所以我使用集合中的 Counter() 方法并尝试从数据框中读取列以获取特定国家/地区的计数。问题在于 Counter() 将读入的字符串拆分为单个字母。例如我是 运行 类似的东西:
from collections import Counter
country_counter = Counter()
my_list = ['US', 'US', 'Mex', 'Can', 'US', 'Can']
for x in my_list:
country_counter.update(x)
这给出了输出:
Counter({'U': 3, 'S': 3, 'M': 1, 'e': 1, 'x': 1, 'C': 2, 'a': 2, 'n': 2})
但我正在尝试:
Counter({'US': 3, 'Can': 2, 'Mex': 1})
关于如何更正此问题的任何帮助?我应该使用 Counter() 还是有更有效的方法?
您可以简单地将列表作为 Counter
的输入。目前您正在做的是遍历每个字符串并将其作为输入,因此如果您给它输入,计数器会考虑单个字母。
>>> from collections import Counter
>>> my_list = ['US', 'US', 'Mex', 'Can', 'US', 'Can']
>>> c=Counter(my_list)
>>> c
Counter({'US': 3, 'Can': 2, 'Mex': 1})