Как сделать таблицу смежности

#python #pandas #dataframe #numpy

#python #панды #фрейм данных #numpy

Вопрос:

У меня есть некоторый фрейм данных, подобный этому.

Я хотел бы создать два элемента из столбца Cars:
0 — если нет автомобиля
1 — для владельцев автомобилей, независимо от того, сколько

К следующему я хочу создать таблицу непредвиденных обстоятельств, но мой код не работает:

 df[['Cars','Purchased Bike']]
cars1 = df.loc[(df['Cars'] >= 1, 'Cars')]=1
### contigency##
contigency5= pd.crosstab(cars1['Cars'], cars1['Purchased Bike']) 
 

Ответ №1:

 df = pd.DataFrame({
    'Cars': [0, 1, 2, 1, 0, 2, 0, 0, 3, 2],
    'Purchased Bike': ['No', 'No', 'No', 'Yes', 'Yes', 'Yes', 'Yes', 'Yes', 'No', 'Yes']
})
pd.crosstab(1*(df['Cars'] > 0), df['Purchased Bike'])
>>>
Purchased Bike  No  Yes
Cars                   
0                1    3
1                3    3
 

Комментарии:

1. Удивительно! Не могли бы вы объяснить мне, почему вы поставили 1x(df . Что здесь произошло?

2. (df['Cars'] > 0) выдает логическое значение pd.Series (например, [True, False …] ). 1*(df['Cars'] > 0) это ярлык в numpy и pandas для создания True -> 1 и False -> 0. Итак, остальное вы знаете.