Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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:如何将相同名称的项添加到一起,并将它们添加到列表中,以便找到列表的长度?_Python_List_Function_Grouping - Fatal编程技术网

PYTHON:如何将相同名称的项添加到一起,并将它们添加到列表中,以便找到列表的长度?

PYTHON:如何将相同名称的项添加到一起,并将它们添加到列表中,以便找到列表的长度?,python,list,function,grouping,Python,List,Function,Grouping,我在一个不同动物的文件中有一个列表,它是在一个函数中打开和读取的 例如,我的清单是: Cats, Dogs, Cows, Cows, Cows, Sheep, Dogs, Sheep, etc. 我如何将它们放入一个列表中,将相同的动物分组并返回列表中每种动物的编号,例如,对于我想要的列表: List = (1, 2, 3, 2) 这将使我能够计算出这个新列表的长度,并给出有多少种不同的动物 如果可能,不使用集合 另外,因为它是在一个函数中,所以我不能具体说明每种动物。您可以使用从列表中实例

我在一个不同动物的文件中有一个列表,它是在一个函数中打开和读取的

例如,我的清单是:

Cats, Dogs, Cows, Cows, Cows, Sheep, Dogs, Sheep, etc.
我如何将它们放入一个列表中,将相同的动物分组并返回列表中每种动物的编号,例如,对于我想要的列表:

List = (1, 2, 3, 2)
这将使我能够计算出这个新列表的长度,并给出有多少种不同的动物

如果可能,不使用集合


另外,因为它是在一个函数中,所以我不能具体说明每种动物。

您可以使用从列表中实例化的
集合。计数器
对象的值:

from collections import Counter
l = ['Cats', 'Dogs', 'Cows', 'Cows', 'Cows', 'Sheep', 'Dogs', 'Sheep']
print(list(Counter(l).values()))
这将产生:

[1, 2, 3, 2]

您可以使用从列表中实例化的
集合.计数器
对象的值:

from collections import Counter
l = ['Cats', 'Dogs', 'Cows', 'Cows', 'Cows', 'Sheep', 'Dogs', 'Sheep']
print(list(Counter(l).values()))
这将产生:

[1, 2, 3, 2]

你可以使用熊猫的groupby

    import pandas as pd

    listOfAnimalsDF = pd.DataFrame({"Animal": ["Cats", "Dogs", "Cows", "Cows", "Cows", "Sheep", "Dogs", "Sheep"]})
    grouped = listOfAnimalsDF.groupby(by="Animal")

    print(grouped.groups)

有关

的更多信息,您可以使用pandas的groupby

    import pandas as pd

    listOfAnimalsDF = pd.DataFrame({"Animal": ["Cats", "Dogs", "Cows", "Cows", "Cows", "Sheep", "Dogs", "Sheep"]})
    grouped = listOfAnimalsDF.groupby(by="Animal")

    print(grouped.groups)

有关

的详细信息,下面使用pandas为列表创建数据框

然后可以使用pandas value_counts函数,该函数返回一个包含独特动物计数的序列

import pandas as pd

myAnimals = {'Animals': ['Cats', 'Dogs', 'Cows', 'Cows', 'Cows', 'Sheep', 'Dogs', 'Sheep']}
myList = pd.DataFrame(myAnimals)

pd.value_counts(myList['Animals'].values)
我发现该方法的输出更直接:

Cows     3
Sheep    2
Dogs     2
Cats     1

有关更多信息,请参阅。

下面使用pandas为列表创建数据框

然后可以使用pandas value_counts函数,该函数返回一个包含独特动物计数的序列

import pandas as pd

myAnimals = {'Animals': ['Cats', 'Dogs', 'Cows', 'Cows', 'Cows', 'Sheep', 'Dogs', 'Sheep']}
myList = pd.DataFrame(myAnimals)

pd.value_counts(myList['Animals'].values)
我发现该方法的输出更直接:

Cows     3
Sheep    2
Dogs     2
Cats     1

有关更多信息,请参阅。

的可能重复请提供有关代码的一些解释。最好对您的解决方案进行一些文本描述,而不是仅仅在OP中抛出代码。添加了额外的解释。谢谢你的反馈@西蒙。这是我对stackoverflow的第一个回复。请提供一些关于代码的解释。最好对您的解决方案进行一些文本描述,而不是仅仅在OP中抛出代码。添加了额外的解释。谢谢你的反馈@西蒙。这是我对stackoverflow的第一个回应。