#python #pandas
#python #pandas
Вопрос:
У меня есть фрейм данных Pandas, подобный этому
device_id content
a X
a Z
b Y
c X
c Y
d Z
e Z
e Y
e X
Он содержит данные различного содержания, к которым имеет доступ устройство. В обоих столбцах могут быть повторяющиеся значения. Я хочу сгенерировать перекрестную вкладку, где ячейка [i,j]
в таблице представляет, сколько людей (идентификатор устройства) получили доступ к обоим содержимому i
и j
. Вот так —
X Y Z
X 0 2 1
Y 2 0 1
Z 1 1 0
Например, таблица [X, Y] = 2 говорит мне, что 2 человека смотрели как X, так и Y. Как мне сгенерировать эту перекрестную таблицу?
Ответ №1:
Я считаю, что вам нужно:
df = df.merge(df, on='device_id')
df = pd.crosstab(df['content_x'], df['content_y'])
print (df)
content_y X Y Z
content_x
X 3 2 2
Y 2 3 1
Z 2 1 3