ПИТОН: Как я могу добавить элементы с одинаковым именем вместе и добавить их в список, чтобы найти длину списка? - PullRequest
0 голосов
/ 18 марта 2019

У меня есть список в файле разных животных, который открывается и читается в функции.

Например, мой список:

Cats, Dogs, Cows, Cows, Cows, Sheep, Dogs, Sheep, etc.

Как мне поместить их в список, который будет группировать одни и те же животные и возвращать номер каждого животного в списке, например, для этого списка, который я хочу:

List = (1, 2, 3, 2)

Это позволит мне определить длину этого нового списка и указать количество различных животных.

Если возможно, не использовать наборы.

Кроме того, поскольку это функция, я не могу быть конкретным в отношении каждого животного.

Ответы [ 3 ]

1 голос
/ 18 марта 2019

Ниже приведено описание использования пандами для создания 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 для получения дополнительной информации.

1 голос
/ 18 марта 2019

Вы можете использовать значения объекта collections.Counter, созданного из списка:

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

Это выводит:

[1, 2, 3, 2]
0 голосов
/ 18 марта 2019

Вы можете использовать группового из панд

    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.DataFrame.groupby

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...