pd.value_counts
Вы также можете передать список в функцию value_counts
.Заметьте, что I join
на |
, затем разделите на |
.
pd.value_counts('|'.join(df.column_name).split('|'))
book 3
fish 2
icecream 1
campfire 1
dtype: int64
get_dummies
Это работает, потому что ваши данные структурированы с |
в качестверазделитель.Если у вас был другой разделитель, передайте его на get_dummies
вызов df.column_name.str.get_dummies(sep='|').sum()
df.column_name.str.get_dummies().sum()
book 3
campfire 1
fish 2
icecream 1
dtype: int64
Если вы хотите отсортировать результаты
df.column_name.str.get_dummies().sum().sort_values(ascending=False)
book 3
fish 2
icecream 1
campfire 1
dtype: int64
pd.factorize
и np.bincount
Обратите внимание, что я join
весь столбец и снова разделить.
f, u = pd.factorize('|'.join(df.column_name).split('|'))
pd.Series(np.bincount(f), u)
book 3
fish 2
icecream 1
campfire 1
dtype: int64
Для сортировки мы можем использовать sort_values
, как мы делали выше.Или это
f, u = pd.factorize('|'.join(df.column_name).split('|'))
counts = np.bincount(f)
a = counts.argsort()[::-1]
pd.Series(counts[a], u[a])
book 3
fish 2
campfire 1
icecream 1
dtype: int64