Процент Всего Панд Матрица - PullRequest
0 голосов
/ 14 января 2019

Привет, у меня есть Матрица Панд, для которой мне нужно найти проценты. Цель состоит в том, чтобы узнать, сколько пользователь использовал продукт на дату. В основном, чтобы узнать, на какую дату этот пользователь использовал какой% категории.

Что я заставил Excel сделать Я получил эту работу в Excel, взяв счет каждого индивидуального пользователя в категории и разделив его на количество идентификаторов для категории

Я понятия не имею, как изобразить это в Пандах или как сработать, чтобы посмотреть, как это сделать в Документации. Можете ли вы помочь мне получить что-то подобное в Матрице Панд?

поля, с которыми я работаю: «Категория», «Идентификатор», «Пользователь», «Произошло»

Это немного, потому что я так застрял, пока у меня есть:

func = lambda x: 100*x.count()/df.shape[1]

counts = df.pivot_table(index=["Category", 'User', 'ID'], values = ["Occurred On"], aggfunc=func, margins=True, fill_value=0)
print(counts)

Может ли кто-нибудь указать мне правильное направление того, что мне нужно прочитать в документации или других постах здесь, чтобы понять, как выполнить математику в этой матрице?

Редактировать # 1: Фрейм данных выглядит примерно так:

 TextFileReader = pd.read_csv(csv_input, sep=',',  names = ['Category', 'ID', 'User', 'Occurred On'])

lookup = pd.read_csv('lookup.csv', sep=',')
df= pd.merge(lookup, keep, left_on='user', right_on='user', how='inner')

Вывод фрейма данных:

Category                                                        User       ID #Count      Occurred On #%
Category 1 ___________________...                              1@work.com  1543841       16.666667
                                                                           1543842       16.666667
                                                                           1543843       16.666667
                                                                           1543844       16.666667
                                                                           1543845       16.666667
                                                                           1543846       16.666667
                                                                           1543847       16.666667
                                                                           1543848       16.666667
                                                                           1543849       16.666667
                                                                           1543850       16.666667
                                                                           1543851       16.666667
                                                                           1543852       16.666667
                                                                           1543853       16.666667
                                                                           1543854       16.666667
                                                                           1543855       16.666667
                                                                           1543856       16.666667
                                                                           1543857       16.666667
                                                                           1543858       16.666667
                                                                           1543859       16.666667
                                                                           1543860       16.666667
                                                                           1543861       16.666667
                                                                           1543862       16.666667
                                                                           1543863       16.666667
Category2 ...                                                   b@work.com 6064691       16.666667
                                                                           6064692       16.666667
                                                                           6064693       16.666667
                                                                           6064694       16.666667
...