Take a crosstab, then subset to your columns and leverage the fact that bool(0) == False and bool(any_other_number) == True to see how many Usernames satisfy your condition.
(pd.crosstab(df['Usernames'], df['Celebrity'])
.loc[:, ['A', 'C', 'D']]
.astype(bool)
.all(axis=1)
.sum())
#1
The crosstab creates a table of counts:
pd.crosstab(df['Usernames'], df['Celebrity'])
#Celebrity A B C D
#Usernames
#1 1 0 0 0
#2 1 0 1 1
#3 1 1 0 0
which we then susbet and turn into a Truth Table
pd.crosstab(df['Usernames'], df['Celebrity']).loc[:, ['A', 'C', 'D']].astype(bool)
#Celebrity A C D
#Usernames
#1 True False False
#2 True True True
#3 True False False