Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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中,如何在csv中每次出现X值时查找某些字符串?_Python_List_Csv_Find Occurrences - Fatal编程技术网

在python中,如何在csv中每次出现X值时查找某些字符串?

在python中,如何在csv中每次出现X值时查找某些字符串?,python,list,csv,find-occurrences,Python,List,Csv,Find Occurrences,我创建了一个.csv,其中包含了自1979年以来NHL每年征召的每名球员的数据。我的csv中的9000行如下所示: 1979,Rob Ramage (D),ON 1979,Perry Turnbull (LW),AB 1979,Raymond Bourque (D),QC 2017,Kristian Røykås Marthinsen (LW),NOR 2017,William Reilly (D),ON 我想找到的是,每个省/州/国家每年有多少次进入。例如,当第一行为1979时,“QC”在第

我创建了一个.csv,其中包含了自1979年以来NHL每年征召的每名球员的数据。我的csv中的9000行如下所示:

1979,Rob Ramage (D),ON
1979,Perry Turnbull (LW),AB
1979,Raymond Bourque (D),QC
2017,Kristian Røykås Marthinsen (LW),NOR
2017,William Reilly (D),ON
我想找到的是,每个省/州/国家每年有多少次进入。例如,当第一行为1979时,“QC”在第三行中出现多少次,并将其放置在另一个csv中。请注意,我的csv中的所有行都是按年份排序的,这意味着我的第一行都从1979年开始,然后是1980年,然后是1981年,等等

在对一些州、省和国家的结果进行分组后,我希望能够得出如下结果:

1979,32,94,36,4
1980,37,84,40,10
1981,40,90,34,22
1982,39,102,18,10
...
第一行是年份,然后,每次该值的每个字符串(QC、ON、NOR等)出现时。正如你所看到的,我在这个应用程序中没有使用玩家的名字

我的问题是,如何在具有特定值的行中找到特定字符串的出现点?我觉得这应该不会太复杂,但我只是不知道从哪里开始,因为我对编程相当陌生

多谢各位

普通蟒蛇 这只能使用
集合。计数器
完成

from collections import Counter

with open(file_name, 'r') as f:
    origin_count_by_year = {}

    for line in f:
        year, _, origin = map(str.strip, line.split(','))

        if year not in origin_count_by_year:
            origin_count_by_year[year] = Counter()

        origin_count_by_year[year][origin] += 1
根据您提供的数据,这将生成以下
dict

{
    '1979': Counter({'ON': 1, 'AB': 1, 'QC': 1}),
    '2017': Counter({'NOR': 1, 'ON': 1})
}
选择 上述方法适用于较短的项目,但如果您打算扩展它,则解析csv文件是错误的方法

最好的方法可能是使用专门用于数据分析的库。它将帮助您通过和缩放


第二种方法是使用数据库而不是csv文件。使用标准库,您可以按年份和国家查询玩家并对其进行计数。

是否允许您使用第三方库,例如
pandas