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的第一个回应。