#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. Итак, остальное вы знаете.