Отобразить конкретные значения в pandas

Подскажите, пожалуйста, как можно вывести только конкретные значения при использовании функции value_counts?

Код:

import pandas as pd
df = pd.read_csv("test.csv", delimiter=";", encoding="utf-8").fillna("Null")
df.head()
id = df["ID"].value_counts()
print(id)

исходный файл CSV имеет два столбца.

получаю:

id Count
1 532
2 2355
3 1235
4 6631
... ...
100 569

Как отобразить только id которые необходимы, например, 20,30,40,50,60

Столбец id имеет строковые значения, т.е. это не порядковый столбец.

Большое спасибо.


Ответы (2 шт):

Автор решения: Andy Pavlov

Можно попробовать отфильтровать через isin():

print(df[df['ID'].isin([20, 30, 40, 50, ])].value_counts())

Если нужно только посчитать повторение ID, то:

print(df[df['ID'].isin([20, 30, 40, 50, ])].value_counts('ID'))

Можно еще по этой выборке посчитать повторение Count:

print(df[df['ID'].isin([20, 30, 40, 50, ])].value_counts('Count'))
→ Ссылка
Автор решения: CrazyElf

Как вариант вроде должно и так сработать. Если такие значения есть в индексе после применения value_counts, т.е. они есть в id в исходном df:

vc = df["ID"].value_counts()
print(vc.loc[['20','30','40','50','60']])

Я заменил имя переменной/датафрейма с результатом применения value_counts, потому что id - это название встроенной функции языка питон, его лучше не использовать для своих переменных.

→ Ссылка