Отобразить конкретные значения в 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 шт):
Можно попробовать отфильтровать через 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'))
Как вариант вроде должно и так сработать. Если такие значения есть в индексе после применения value_counts, т.е. они есть в id в исходном df:
vc = df["ID"].value_counts()
print(vc.loc[['20','30','40','50','60']])
Я заменил имя переменной/датафрейма с результатом применения value_counts, потому что id - это название встроенной функции языка питон, его лучше не использовать для своих переменных.