Допустим, у меня есть такие данные:
+-------+--------+--------------+--------+--------------+
| index | used_x | clicked_in_x | used_y | clicked_in_y |
+-------+--------+--------------+--------+--------------+
| 1 | True | False | True | True |
| 2 | False | False | True | False |
| 3 | True | True | False | False |
+-------+--------+--------------+--------+--------------+
И я хотел бы создать таблицу на случай непредвиденных обстоятельств, используя панд, которая показывает такую таблицу:
+--------+----------------+----------------+
| | clicked_from_x | clicked_from_y |
+--------+----------------+----------------+
| used_x | 40 | 3 |
| used_y | 2 | 10 |
+--------+----------------+----------------+
Каков наилучший способ достичь этого? До сих пор я пробовал следующее, используя метод crosstab
:
import numpy as np
import pandas as pd
size = 20
df = pd.DataFrame({
'used_x': np.random.choice(a=[False, True], size=size),
'clicked_from_x': np.random.choice(a=[False, True], size=size),
'used_y': np.random.choice(a=[False, True], size=size),
'clicked_from_y': np.random.choice(a=[False, True], size=size),
})
pd.crosstab([df['used_x'], df['used_y']], [df['clicked_from_x'], df['clicked_from_y']], margins=False)
Что дает:
Но это довольно сложно понять, а не представление, на которое я надеялся. Кто-нибудь знает, как получить желаемый результат или, возможно, эквивалентную стратегию с использованием панд?