Стандартным приемом для определения взаимосвязи между числовыми колонками является вычисление коэффициента корреляции Пирсона, однако с категориальными данными такой финт не пройдет, так как они, как правило, не упорядочены (читай тут). Рассмотрим способ, который можно использовать. Сначала сгенерируем тестовый набор данных, о присутствии автомобилей разных марок в заданных локациях: import numpy as np
import pandas as pd
np.random.seed(0)
autos_l = ['BMW', 'Mercedes', 'VOLGA', 'GEEP']
locations_l = ['Russia', 'Germany', 'USA']
prob_d = {'BMW':[0.2, 0.7, 0.1], 'Mercedes':[0.15, 0.75, 0.10],
'VOLGA':[0.99, 0.01,0], 'GEEP':[0.1, 0.3, 0.6]}
N=1000
autos = np.random.choice(autos_l, size=N)
locations = [np.random.choice(a=locations_l, p=prob_d[it]) for it in autos]
df = pd.DataFrame({'auto':autos, 'location':locations})
df.head(3) Сформируем таблицу частот встречаемости машин в локациях: df_stat = df.groupby(['auto', 'location']).size().unstack().fillna(0)
df_stat['total_row']