Как извлечь определенные значения из столбца и указать их количество в столбце

Дан датасет, вот 2 колонки из него:

import pandas as pd 
df = pd.DataFrame({'Name':['020245D5Z02255D0',  '92014947Q6252900', '02025727Y05255D0', '32024752804301S0', '32804202475301S0', '34301202475280S0'], 'Size': ['4XL', '80B', '25-27', 'S/M', 'M', 'L']}) 
print(df)

Мне нужно извлечь только определенные строки в столбце и построить график на основании их количества. Извлечь нужно только ('M', 'L') - посчитать их количество и построить график.

На выходе:

               Size   Count
0                 M     10
1                 L     50
  1. Я делала так:
Sales = df.groupby(['Size'])['Name'].count()
Sales.plot()

но тогда выводит абсолютно все значения.

  1. Затем так:
df.groupby('Size').apply(lambda x: x.drop('Size', axis=1).drop_duplicates().shape[0])
pandas.core.series.Series

Но тогда получается тип Series со всеми значениями и я не знаю как построить график.

  1. Потом так:
df.groupby('Size').apply(lambda x: x.drop('Size', axis=1).drop_duplicates().shape[0]).to_frame('counts')

Получается фрейм с одной колонкой Name: counts, dtype: int64 и тоже со всеми значениями, и как тогда построить график.

  1. Если делать так:
size_M = df[df['Size'] == 'M'].count()
size_L = df[['Size'] == 'L']

Я не знаю как это применить и выбрать из датафрейма эти значения.

  1. Sales.isin(['M', 'L']) Если изъять все значения, получаю булевский датафрейм и тоже не знаю как это применить.

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

Автор решения: strawdog
df[df.loc[:,"Size"].isin(["M", "L"])]

получите:

               Name Size
4  32804202475301S0    M
5  34301202475280S0    L

еще конкретнее:

res = df[df.loc[:,"Size"].isin(["M", "L"])]["Size"].value_counts()
print(res)
L    1
M    1
→ Ссылка
Автор решения: MaxU

альтернативные варианты решения:

res = df["Size"].value_counts().loc[["M", "L"]]

или

res = df.query("Size in ['M', 'L']")["Size"].value_counts()

In [228]: res
Out[228]:
M    1
L    1
Name: Size, dtype: int64
→ Ссылка