Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果每个国家/地区代码的计数小于5,则需要警告消息_Python_Loops_Pandas_Dataframe - Fatal编程技术网

Python 如果每个国家/地区代码的计数小于5,则需要警告消息

Python 如果每个国家/地区代码的计数小于5,则需要警告消息,python,loops,pandas,dataframe,Python,Loops,Pandas,Dataframe,如果某个国家/地区代码的计数或频率小于5,我将尝试获取警告或打印消息 QuoteID 1500759-BE 1500759-BE 1500759-BE 1500759-BE 1605101-FR 1605101-FR 1605101-FR 1605119-FR 1605119-FR 1605119-FR 1605119-FR 1605119-FR 1600896-NL 1600896-NL 1600896-NL 1600898-NL 1600898-NL 1600898-NL 1600898-N

如果某个国家/地区代码的计数或频率小于5,我将尝试获取警告或打印消息

QuoteID
1500759-BE
1500759-BE
1500759-BE
1500759-BE
1605101-FR
1605101-FR
1605101-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1600896-NL
1600896-NL
1600896-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
尝试了下面的代码

chars=('BE','FR','NL')
check_string=OutputData['QuoteID']

for char in chars:
  count = check_string.count(char)
  if count < 5:
    print ('count is less than 5 )
chars=('BE'、'FR'、'NL')
检查_string=OutputData['QuoteID']
对于char中的char:
计数=检查字符串。计数(字符)
如果计数小于5:
打印('计数小于5)
预期结果为“警告“BE类”记录少于5条”

OutputData
-数据集名称
QuoteID
-变量名

1500759-BE
等值是变量值,必须计算“BE”、“FR”和“NL”的频率或计数,如果计数小于5,则需要警告消息

QuoteID
1500759-BE
1500759-BE
1500759-BE
1500759-BE
1605101-FR
1605101-FR
1605101-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1600896-NL
1600896-NL
1600896-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL

非常感谢您提前

您可以使用Python的
集合
模块提供的
计数器来计算列表中元素的出现次数。
此外,您可以通过拆分所有行并去掉每行的最后两个元素(即国家代码),提取示例数据中给定的国家代码

总而言之,我建议这样做:

from collections import Counter

data = """1500759-BE
1500759-BE
1500759-BE
1500759-BE
1605101-FR
1605101-FR
1605101-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1600896-NL
1600896-NL
1600896-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
"""

codes = [l[-2:] for l in data.splitlines()]

c = Counter(codes)

for k,v in c.items():
    if v < 5:
        print('less then 5 items for {}'.format(k))
从集合导入计数器
数据=“1500759-BE”
1500759-BE
1500759-BE
1500759-BE
1605101-FR
1605101-FR
1605101-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1600896-NL
1600896-NL
1600896-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
"""
codes=[l[-2:]表示数据中的l.splitlines()]
c=计数器(代码)
对于c.项()中的k,v:
如果v<5:
打印({}少于5项。格式(k))

当您使用
python-2.7
标记问题时,您需要记住将我提供的Python3代码转换为Python2等效代码。也就是说,您需要使用
print output
而不是
print(output)
,而
。items()
将变成
。iteritems()

您可以使用Python的
collections
模块提供的
计数器来计算列表中元素的出现次数。
此外,您可以通过拆分所有行并去掉每行的最后两个元素(即国家代码),提取示例数据中给定的国家代码

总而言之,我建议这样做:

from collections import Counter

data = """1500759-BE
1500759-BE
1500759-BE
1500759-BE
1605101-FR
1605101-FR
1605101-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1600896-NL
1600896-NL
1600896-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
"""

codes = [l[-2:] for l in data.splitlines()]

c = Counter(codes)

for k,v in c.items():
    if v < 5:
        print('less then 5 items for {}'.format(k))
从集合导入计数器
数据=“1500759-BE”
1500759-BE
1500759-BE
1500759-BE
1605101-FR
1605101-FR
1605101-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1605119-FR
1600896-NL
1600896-NL
1600896-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
1600898-NL
"""
codes=[l[-2:]表示数据中的l.splitlines()]
c=计数器(代码)
对于c.项()中的k,v:
如果v<5:
打印({}少于5项。格式(k))

当您使用
python-2.7
标记问题时,您需要记住将我提供的Python3代码转换为Python2等效代码。也就是说,您需要使用
print output
而不是
print(output)
,并且
。items()
将变成
。iteritems()

QuoteID的类型是什么如果它的类型是string,那么它工作正常

alist = "1500759-BE1500759-BE1500759-BE1500759-BE1605101-FR1605101-FR1605101-FR1605119-FR1605119-FR1605119-FR1605119-FR1605119-FR1600896-NL1600896-NL1600896-NL1600898-NL1600898-NL1600898-NL1600898-NL1600898-NL1600898-NL"

chars=('BE','FR','NL')

for char in chars:

count = alist.count(char)

if count < 5:

    print ('count is less than 5' )

    print char

    print "\n"
alist=“1500759-BE1500759-BE1500759-BE1500759-BE1605101-FR1605101-FR1605101-FR1605119-FR1605119-FR1605119-FR1605119-FR1605119-FR160896-NL1600896-NL1600898-NL1600898-NL1600898-NL1600898-NL1600898-NL1600898”
字符=('BE'、'FR'、'NL')
对于char中的char:
count=alist.count(字符)
如果计数小于5:
打印('计数小于5')
打印字符
打印“\n”

如果对我来说可以正常工作

什么是QuoteID的类型如果它的类型是string,那么它可以正常工作

alist = "1500759-BE1500759-BE1500759-BE1500759-BE1605101-FR1605101-FR1605101-FR1605119-FR1605119-FR1605119-FR1605119-FR1605119-FR1600896-NL1600896-NL1600896-NL1600898-NL1600898-NL1600898-NL1600898-NL1600898-NL1600898-NL"

chars=('BE','FR','NL')

for char in chars:

count = alist.count(char)

if count < 5:

    print ('count is less than 5' )

    print char

    print "\n"
alist=“1500759-BE1500759-BE1500759-BE1500759-BE1605101-FR1605101-FR1605101-FR1605119-FR1605119-FR1605119-FR1605119-FR1605119-FR160896-NL1600896-NL1600898-NL1600898-NL1600898-NL1600898-NL1600898-NL1600898”
字符=('BE'、'FR'、'NL')
对于char中的char:
count=alist.count(字符)
如果计数小于5:
打印('计数小于5')
打印字符
打印“\n”
如果适用于我

您可以使用从每个
QuoteID
字符串中提取国家代码,如下所示:

In [16]: df['CountryCode'] = df['QuoteID'].str.extract('(?P<letter>BE|FR|NL)', expand=True)

In [17]: df
Out[17]: 
       QuoteID CountryCode
0   1500759-BE          BE
1   1500759-BE          BE
2   1500759-BE          BE
3   1500759-BE          BE
4   1605101-FR          FR
5   1605101-FR          FR
6   1605101-FR          FR
7   1605119-FR          FR
8   1605119-FR          FR
9   1605119-FR          FR
10  1605119-FR          FR
11  1605119-FR          FR
12  1600896-NL          NL
13  1600896-NL          NL
14  1600896-NL          NL
15  1600898-NL          NL
16  1600898-NL          NL
17  1600898-NL          NL
18  1600898-NL          NL
19  1600898-NL          NL
20  1600898-NL          NL
您可以使用从每个
QuoteID
字符串中提取国家代码,如下所示:

In [16]: df['CountryCode'] = df['QuoteID'].str.extract('(?P<letter>BE|FR|NL)', expand=True)

In [17]: df
Out[17]: 
       QuoteID CountryCode
0   1500759-BE          BE
1   1500759-BE          BE
2   1500759-BE          BE
3   1500759-BE          BE
4   1605101-FR          FR
5   1605101-FR          FR
6   1605101-FR          FR
7   1605119-FR          FR
8   1605119-FR          FR
9   1605119-FR          FR
10  1605119-FR          FR
11  1605119-FR          FR
12  1600896-NL          NL
13  1600896-NL          NL
14  1600896-NL          NL
15  1600898-NL          NL
16  1600898-NL          NL
17  1600898-NL          NL
18  1600898-NL          NL
19  1600898-NL          NL
20  1600898-NL          NL

那么你想检查身份证和国家代码?您能提供一个给定输入的所需输出的示例片段吗?从你在问题开始时说了10次,在问题结束时说了5次,你想检查出现的次数是否少于5次或少于10次。您提供的代码的实际问题是什么?那么您想同时检查ID和国家代码吗?您能提供一个给定输入的所需输出的示例片段吗?从你在问题开始时说了10次,在问题结束时说了5次,你想检查出现的次数是否少于5次或少于10次。您提供的代码的实际问题是什么?