Расширенный pandas value_counts () с графикой matplotlib - PullRequest
0 голосов
/ 24 марта 2020

У меня есть веб-сайт, которым я управляю, и я использую аналитику данных с Pandas, чтобы получить полезную информацию о моих продуктах и ​​компаниях, которые их поставляют.

Теперь на моем веб-сайте есть тонны продуктов там и я даю каждому продукту идентификационный номер, чтобы идентифицировать каждый продукт, произведенный Компанией, что означает, что Компания может иметь разные продукты ie. productIDs.

На моем сайте вы можете сравнивать продукты, которые соответствуют вашим требованиям разных компаний, и я запрограммировал свой сайт, чтобы разрешить только три сравнения. Одновременно можно сравнивать только три продукта с различными функциями.

Мне удалось настроить Google Analytics для отслеживания данных. так, например, с диаграммой ниже: клиент сравнил product IDs 920 с 470 и 212 рядом.

enter image description here

Я хотел бы выполнить value_counts независимо для каждого продукта, а затем посмотреть, какие продукты сравнивались чаще всего с другими продуктами и имеют Seaborn или matplotlib Group bar plot как это?

enter image description here

Вот dataframe для вашего удобства:

df = pd.DataFrame({'ProductID_A': ['920','162','920','920','920','165','920'],
 'ProductID_B': ['470','470','470','212', np.nan,'470','470'],
 'ProductID_C': ['212','212',"212", "570",'212','1670', '212']})

Спасибо за ваше время.

1 Ответ

0 голосов
/ 24 марта 2020

Достигает ли это желаемого результата?

df. unstack поворачивает исходный фрейм данных, тогда reset_index используется для преобразования всего, поэтому оно больше не группируется. Имена столбцов в groupby по умолчанию слева от unstack, но это может быть изменено или указано в вашем графике.

df1 = pd.DataFrame(df.unstack()).reset_index()

df2 = df1[[0, 'level_0']].groupby(0).count()

sns.barplot(x= df2.index, y = 'level_0', data = df2)
plt.ylabel('count')
plt.xlabel('product ID')

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...