[英]How do I add all integers in one list to integers on another list with different length in the same order in Python?
[英]PYTHON: How do I add items of the same name together, and add them to a list in order to find the length of the list?
我在不同動物的文件中有一個列表,該列表已打開並在函數中讀取。
例如,我的清單是:
Cats, Dogs, Cows, Cows, Cows, Sheep, Dogs, Sheep, etc.
如何將它們放在一個列表中,該列表將相同的動物分組在一起並返回列表中每只動物的數量,例如,我想要的該列表:
List = (1, 2, 3, 2)
然后,這將使我能夠計算出此新列表的長度,並給出有多少種不同的動物。
如果可能,不使用集。
另外,由於它具有功能,因此我無法具體說明每只動物。
您可以使用從列表中實例化的collections.Counter
對象的值:
from collections import Counter
l = ['Cats', 'Dogs', 'Cows', 'Cows', 'Cows', 'Sheep', 'Dogs', 'Sheep']
print(list(Counter(l).values()))
輸出:
[1, 2, 3, 2]
下面使用熊貓創建帶有列表的DataFrame。
然后,您可以使用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
有關更多信息,請參見value_counts 。
您可以使用熊貓的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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.