Как рассчитать количество и первое появление данных списка? - PullRequest
2 голосов
/ 30 марта 2020

У меня есть список с типами автомобилей,

a = ['Car_1','Car_1','Car_1','Car_2','Car_3','Car_3']

Я могу создать вывод из 2 списков из приведенного выше списка,

result_count = [1,0,0,1,1,0] #Whenever new car type is present in list, make it 1
result_count = [1,2,3,1,1,2] #Count each car type

Как мне легко добиться этого, не используя циклы for? Спасибо.

1 Ответ

2 голосов
/ 30 марта 2020

IIU C, используя pandas dataframe

для # 1, мы можем использовать .drop_duplicates

для # 2, мы можем использовать groupby и cumcount

df = pd.DataFrame({'cars' : a})

one = (~df['cars'].duplicated()).astype(int).tolist() # Thanks to Erfan
two = (df.groupby('cars').cumcount() + 1).tolist()

print(one)

[1 0 0 1 1 0]

print(two)

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