diff --git a/Presentation_Tab_work.twb b/Presentation_Tab_work.twb new file mode 100644 index 0000000..03ab0f1 --- /dev/null +++ b/Presentation_Tab_work.twb @@ -0,0 +1,4734 @@ + + + + + + + + + + + + + + + + + <_.fcp.VConnDownstreamExtractsWithWarnings.true...VConnDownstreamExtractsWithWarnings /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + [Sheet1] + + Count + true + + 0 + "A1:AH10001:no:A1:AH10001:0" + true + 6 + + + + hotel + 130 + [hotel] + [Sheet1] + hotel + 0 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + is_canceled + 20 + [is_canceled] + [Sheet1] + is_canceled + 1 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + lead_time + 20 + [lead_time] + [Sheet1] + lead_time + 2 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + arrival_date_year + 20 + [arrival_date_year] + [Sheet1] + arrival_date_year + 3 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + arrival_date_month + 130 + [arrival_date_month] + [Sheet1] + arrival_date_month + 4 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + arrival_date_week_number + 20 + [arrival_date_week_number] + [Sheet1] + arrival_date_week_number + 5 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + arrival_date_day_of_month + 20 + [arrival_date_day_of_month] + [Sheet1] + arrival_date_day_of_month + 6 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + stays_in_weekend_nights + 20 + [stays_in_weekend_nights] + [Sheet1] + stays_in_weekend_nights + 7 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + stays_in_week_nights + 20 + [stays_in_week_nights] + [Sheet1] + stays_in_week_nights + 8 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + adults + 20 + [adults] + [Sheet1] + adults + 9 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + children + 20 + [children] + [Sheet1] + children + 10 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + babies + 20 + [babies] + [Sheet1] + babies + 11 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + meal + 130 + [meal] + [Sheet1] + meal + 12 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + country + 130 + [country] + [Sheet1] + country + 13 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + market_segment + 130 + [market_segment] + [Sheet1] + market_segment + 14 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + distribution_channel + 130 + [distribution_channel] + [Sheet1] + distribution_channel + 15 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + is_repeated_guest + 20 + [is_repeated_guest] + [Sheet1] + is_repeated_guest + 16 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + previous_cancellations + 20 + [previous_cancellations] + [Sheet1] + previous_cancellations + 17 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + previous_bookings_not_canceled + 20 + [previous_bookings_not_canceled] + [Sheet1] + previous_bookings_not_canceled + 18 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + reserved_room_type + 130 + [reserved_room_type] + [Sheet1] + reserved_room_type + 19 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + assigned_room_type + 130 + [assigned_room_type] + [Sheet1] + assigned_room_type + 20 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + booking_changes + 20 + [booking_changes] + [Sheet1] + booking_changes + 21 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + deposit_type + 130 + [deposit_type] + [Sheet1] + deposit_type + 22 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + agent + 20 + [agent] + [Sheet1] + agent + 23 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + company + 20 + [company] + [Sheet1] + company + 24 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + days_in_waiting_list + 20 + [days_in_waiting_list] + [Sheet1] + days_in_waiting_list + 25 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + customer_type + 130 + [customer_type] + [Sheet1] + customer_type + 26 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + adr + 5 + [adr] + [Sheet1] + adr + 27 + real + Sum + 15 + true + + "R8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + required_car_parking_spaces + 20 + [required_car_parking_spaces] + [Sheet1] + required_car_parking_spaces + 28 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + total_of_special_requests + 20 + [total_of_special_requests] + [Sheet1] + total_of_special_requests + 29 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + reservation_status + 130 + [reservation_status] + [Sheet1] + reservation_status + 30 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + reservation_status_date + 130 + [reservation_status_date] + [Sheet1] + reservation_status_date + 31 + string + Count + true + + + "WSTR" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + rn_sum + 20 + [rn_sum] + [Sheet1] + rn_sum + 32 + integer + Sum + true + + "I8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + revenue_total + 5 + [revenue_total] + [Sheet1] + revenue_total + 33 + real + Sum + 15 + true + + "R8" + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + hotel + 129 + [hotel] + [Extract] + hotel + 0 + Sheet1 + string + Count + 2 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + is_canceled + 20 + [is_canceled] + [Extract] + is_canceled + 1 + Sheet1 + integer + Sum + 2 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + lead_time + 20 + [lead_time] + [Extract] + lead_time + 2 + Sheet1 + integer + Sum + 1335 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + arrival_date_year + 20 + [arrival_date_year] + [Extract] + arrival_date_year + 3 + Sheet1 + integer + Sum + 3 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + arrival_date_month + 129 + [arrival_date_month] + [Extract] + arrival_date_month + 4 + Sheet1 + string + Count + 12 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + arrival_date_week_number + 20 + [arrival_date_week_number] + [Extract] + arrival_date_week_number + 5 + Sheet1 + integer + Sum + 53 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + arrival_date_day_of_month + 20 + [arrival_date_day_of_month] + [Extract] + arrival_date_day_of_month + 6 + Sheet1 + integer + Sum + 31 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + stays_in_weekend_nights + 20 + [stays_in_weekend_nights] + [Extract] + stays_in_weekend_nights + 7 + Sheet1 + integer + Sum + 13 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + stays_in_week_nights + 20 + [stays_in_week_nights] + [Extract] + stays_in_week_nights + 8 + Sheet1 + integer + Sum + 49 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + adults + 20 + [adults] + [Extract] + adults + 9 + Sheet1 + integer + Sum + 16 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + children + 20 + [children] + [Extract] + children + 10 + Sheet1 + integer + Sum + 3 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + babies + 20 + [babies] + [Extract] + babies + 11 + Sheet1 + integer + Sum + 2 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + meal + 129 + [meal] + [Extract] + meal + 12 + Sheet1 + string + Count + 5 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + country + 129 + [country] + [Extract] + country + 13 + Sheet1 + string + Count + 226 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + market_segment + 129 + [market_segment] + [Extract] + market_segment + 14 + Sheet1 + string + Count + 7 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + distribution_channel + 129 + [distribution_channel] + [Extract] + distribution_channel + 15 + Sheet1 + string + Count + 3 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + is_repeated_guest + 20 + [is_repeated_guest] + [Extract] + is_repeated_guest + 16 + Sheet1 + integer + Sum + 2 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + previous_cancellations + 20 + [previous_cancellations] + [Extract] + previous_cancellations + 17 + Sheet1 + integer + Sum + 6 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + previous_bookings_not_canceled + 20 + [previous_bookings_not_canceled] + [Extract] + previous_bookings_not_canceled + 18 + Sheet1 + integer + Sum + 27 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + reserved_room_type + 129 + [reserved_room_type] + [Extract] + reserved_room_type + 19 + Sheet1 + string + Count + 8 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + assigned_room_type + 129 + [assigned_room_type] + [Extract] + assigned_room_type + 20 + Sheet1 + string + Count + 10 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + booking_changes + 20 + [booking_changes] + [Extract] + booking_changes + 21 + Sheet1 + integer + Sum + 11 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + deposit_type + 129 + [deposit_type] + [Extract] + deposit_type + 22 + Sheet1 + string + Count + 2 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + agent + 20 + [agent] + [Extract] + agent + 23 + Sheet1 + integer + Sum + 557 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + company + 20 + [company] + [Extract] + company + 24 + Sheet1 + integer + Sum + 398 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + days_in_waiting_list + 20 + [days_in_waiting_list] + [Extract] + days_in_waiting_list + 25 + Sheet1 + integer + Sum + 270 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + customer_type + 129 + [customer_type] + [Extract] + customer_type + 26 + Sheet1 + string + Count + 4 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + adr + 5 + [adr] + [Extract] + adr + 27 + Sheet1 + real + Sum + 4289 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + required_car_parking_spaces + 20 + [required_car_parking_spaces] + [Extract] + required_car_parking_spaces + 28 + Sheet1 + integer + Sum + 2 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + total_of_special_requests + 20 + [total_of_special_requests] + [Extract] + total_of_special_requests + 29 + Sheet1 + integer + Sum + 11 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + reservation_status + 129 + [reservation_status] + [Extract] + reservation_status + 30 + Sheet1 + string + Count + 3 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + reservation_status_date + 129 + [reservation_status_date] + [Extract] + reservation_status_date + 31 + Sheet1 + string + Count + 3366 + true + + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + rn_sum + 20 + [rn_sum] + [Extract] + rn_sum + 32 + Sheet1 + integer + Sum + 31 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + revenue_total + 5 + [revenue_total] + [Extract] + revenue_total + 33 + Sheet1 + real + Sum + 6935 + true + [Sheet1_215B7E52DFDF419FA1049AFA3E28955D] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <formatted-text> + <run bold='true' fontsize='10'>Average Daily Rate €</run> + <run bold='true' fontsize='9'>Æ </run> + <run fontsize='9'>by Room Type</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[avg:adr:qk] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] / [federated.05shziq025f7hr107fl0s1ic9f05].[none:reserved_room_type:nk]) +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>Average Daily Rate € </run> + <run fontsize='9'>by all Reservatoion Status</run> + <run fontsize='12'>Æ </run> + <run fontsize='8'>(mean price)</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[avg:adr:qk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>Reservation Status</run> + <run fontsize='10'>Æ </run> + <run fontsize='9'>- All Room Nights</run> + <run bold='true' fontsize='10'>Æ </run> + <run bold='true' fontsize='8'>( Jul to Dec 2015, 2016, Jan to Jun 2017)</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + + + + + "Check-Out" + "Canceled" + "No-Show" + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[pcto:sum:rn_sum:qk:7] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] / [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk]) + +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>% of Total Count of Distribution Channel</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + + + + + "Corporate" + "Direct" + "TA/TO" + "GDS" + + + + + "City Hotel" + "Resort Hotel" + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:distribution_channel:nk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[pcto:cnt:distribution_channel:qk:8] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] / [federated.05shziq025f7hr107fl0s1ic9f05].[none:distribution_channel:nk]) + +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>ADR</run> + <run fontsize='10'> € - Meal Plan</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[avg:adr:qk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>% of Revenue -</run> + <run fontsize='9'> meal plan rate</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[sum:rn_sum:qk] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] / [federated.05shziq025f7hr107fl0s1ic9f05].[none:meal:nk]) +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>Average Daily Rate € </run> + <run fontsize='9'>by Reservation_Status</run> + <run fontsize='12'>Æ </run> + <run fontsize='8'>(mean price)</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:adr:qk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>"Active" reservations</run> + <run bold='true' fontsize='8'>Æ </run> + <run bold='true' fontsize='9'>- Checkout Room Nights</run> + <run bold='true' fontsize='8'>Æ </run> + <run fontsize='8'>( Jul to Dec 2015, 2016, Jan to Jun 2017)</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + "Check-Out" + "Canceled" + "No-Show" + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[avg:rn_sum:qk] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] / [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk]) + +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>% of Total Count of Distribution Channel</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + + + + + "Corporate" + "Direct" + "TA/TO" + "GDS" + + + + + "City Hotel" + "Resort Hotel" + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:distribution_channel:nk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[pcto:cnt:distribution_channel:qk:8] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] / [federated.05shziq025f7hr107fl0s1ic9f05].[none:distribution_channel:nk]) + +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>Total Sales € </run> + <run fontsize='9'>by Room Type</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[sum:revenue_total:qk] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] / [federated.05shziq025f7hr107fl0s1ic9f05].[none:reserved_room_type:nk]) +
+ +
+ + + + <formatted-text> + <run bold='true' fontsize='10'>"Active" Room Nights</run> + <run fontsize='9'> by Room type</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[pcto:cnt:rn_sum:qk] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] / [federated.05shziq025f7hr107fl0s1ic9f05].[none:reserved_room_type:nk]) +
+ +
+ + + + <formatted-text> + <run fontsize='10'>Total _ ADR €</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + 2015 + 2017 + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:arrival_date_year:qk] + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[avg:adr:qk] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] * [federated.05shziq025f7hr107fl0s1ic9f05].[none:arrival_date_year:qk]) +
+ +
+ + + + <formatted-text> + <run fontsize='10'>Total Revenue €</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + 2015 + 2017 + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:arrival_date_year:qk] + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[sum:revenue_total:qk] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] * [federated.05shziq025f7hr107fl0s1ic9f05].[none:arrival_date_year:qk]) +
+ +
+ + + + <formatted-text> + <run fontsize='10'>Total RN</run> + </formatted-text> + + + + + + + + + + + + + + + + + + + 2015 + 2017 + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[none:reservation_status:nk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] + [federated.05shziq025f7hr107fl0s1ic9f05].[none:arrival_date_year:qk] + + + + + + + + + + + + + + + + [federated.05shziq025f7hr107fl0s1ic9f05].[sum:rn_sum:qk] + ([federated.05shziq025f7hr107fl0s1ic9f05].[none:hotel:nk] * [federated.05shziq025f7hr107fl0s1ic9f05].[none:arrival_date_year:qk]) +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + bJlullGI/wWH3Rh+L9/ZxgAAAABJRU5ErkJggg== + + +
diff --git a/Work_READ_ME_file.pdf b/Work_READ_ME_file.pdf new file mode 100644 index 0000000..637e512 Binary files /dev/null and b/Work_READ_ME_file.pdf differ diff --git a/Work_SQL.sql b/Work_SQL.sql new file mode 100644 index 0000000..0c5bebe --- /dev/null +++ b/Work_SQL.sql @@ -0,0 +1,36 @@ +CREATE DATABASE IF NOT EXISTS CSV_CLEAN_DATA; + +USE CSV_CLEAN_DATA; + +-- 1. How many Room Nights each hotel as, in each reservation status +SELECT hotel, reservation_status, SUM(rn_sum) as Total_RN +FROM clean_hotel_data +GROUP BY hotel, reservation_status; + +-- 2 . What is the average daily rate (ADR) for each hotel, only "active" Reservations +SELECT hotel, ROUND(AVG(adr), 2) as ADR_€ +FROM clean_hotel_data +WHERE is_canceled = 0 +GROUP BY Hotel; + +-- 3. For each Hotel how many nights were sold by Distribution Channel +SELECT Distribution_channel, Hotel, ROUND(SUM(rn_sum)) as T_RN +FROM clean_hotel_data +GROUP BY Distribution_channel, Hotel; + +-- 4. For each Hotel how many Meal Plans were sold +SELECT meal, hotel, count(meal) as Qty_Meal_Plan +FROM clean_hotel_data +GROUP BY meal, hotel; + +-- 5. For each Hotel how much Revenue was generate by years +SELECT hotel, arrival_date_year, ROUND(sum(revenue_total), 0) as T_Rev_€ +FROM clean_hotel_data +WHERE is_canceled = 0 +GROUP BY Hotel, arrival_date_year; + +-- 6. For each Hotel how much Revenue was generate by Distribution Channel +SELECT hotel, distribution_channel, ROUND(sum(revenue_total), 0) as T_Rev_€ +FROM clean_hotel_data +WHERE is_canceled = 0 +GROUP BY Hotel, distribution_channel; \ No newline at end of file diff --git a/work_mycode.ipynb b/work_mycode.ipynb new file mode 100644 index 0000000..2ebff42 --- /dev/null +++ b/work_mycode.ipynb @@ -0,0 +1,3306 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 95, + "id": "fa60ea5d-4b54-4c48-bddc-91d2c516cb33", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt # viz\n", + "import seaborn as sns # better viz\n", + "import numpy as np # numerical python\n", + "\n", + "%matplotlib inline\n", + "pd.set_option('display.max_columns', None)" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "id": "24532935-73d3-4ed9-a9e8-6b18d83c8fd9", + "metadata": {}, + "outputs": [], + "source": [ + "data = pd.read_csv(\"hotel_bookings.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "id": "030dd971-dac7-43c1-ad87-3597c112fcb0", + "metadata": {}, + "outputs": [], + "source": [ + "df = data.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "id": "001a4551-ed1b-4787-a259-bcba114c093a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "hotel 0\n", + "is_canceled 0\n", + "lead_time 0\n", + "arrival_date_year 0\n", + "arrival_date_month 0\n", + "arrival_date_week_number 0\n", + "arrival_date_day_of_month 0\n", + "stays_in_weekend_nights 0\n", + "stays_in_week_nights 0\n", + "adults 0\n", + "children 0\n", + "babies 0\n", + "meal 0\n", + "country 0\n", + "market_segment 0\n", + "distribution_channel 0\n", + "is_repeated_guest 0\n", + "previous_cancellations 0\n", + "previous_bookings_not_canceled 0\n", + "reserved_room_type 0\n", + "assigned_room_type 0\n", + "booking_changes 0\n", + "deposit_type 0\n", + "agent 0\n", + "company 0\n", + "days_in_waiting_list 0\n", + "customer_type 0\n", + "adr 0\n", + "required_car_parking_spaces 0\n", + "total_of_special_requests 0\n", + "reservation_status 0\n", + "reservation_status_date 0\n", + "dtype: int64" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.eq(\" \").sum() # empty Spaces" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "id": "2762936c-ef04-4bb9-bd92-cd610bd4dc93", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "31994" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.duplicated().sum() #duplicates - has several but we don´t have a reservation id to see the real duplicate´s" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "id": "e447ff0c-5d45-499a-8b4f-81da1f5822e7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(119390, 32)" + ] + }, + "execution_count": 100, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "id": "9af55228-5810-4809-81cf-39b2b7dfe204", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "hotel 0\n", + "is_canceled 0\n", + "lead_time 0\n", + "arrival_date_year 0\n", + "arrival_date_month 0\n", + "arrival_date_week_number 0\n", + "arrival_date_day_of_month 0\n", + "stays_in_weekend_nights 0\n", + "stays_in_week_nights 0\n", + "adults 0\n", + "children 4\n", + "babies 0\n", + "meal 0\n", + "country 488\n", + "market_segment 0\n", + "distribution_channel 0\n", + "is_repeated_guest 0\n", + "previous_cancellations 0\n", + "previous_bookings_not_canceled 0\n", + "reserved_room_type 0\n", + "assigned_room_type 0\n", + "booking_changes 0\n", + "deposit_type 0\n", + "agent 16340\n", + "company 112593\n", + "days_in_waiting_list 0\n", + "customer_type 0\n", + "adr 0\n", + "required_car_parking_spaces 0\n", + "total_of_special_requests 0\n", + "reservation_status 0\n", + "reservation_status_date 0\n", + "dtype: int64" + ] + }, + "execution_count": 101, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isna().sum() # NaNs, we to drop columns \"Agent + Companys\" and 4 children lines" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "id": "361e1320-7f13-4ab0-ae36-8b91dfc0b218", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.drop(columns=[\"country\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "id": "e531a558-b8ef-4ac7-a42a-e42565536900", + "metadata": {}, + "outputs": [], + "source": [ + "df = df.drop(columns=[\"agent\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "id": "e6b15dc2-3c82-4b1c-b1ec-416fbc6d42ce", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotelis_canceledlead_timearrival_date_yeararrival_date_montharrival_date_week_numberarrival_date_day_of_monthstays_in_weekend_nightsstays_in_week_nightsadultschildrenbabiesmealmarket_segmentdistribution_channelis_repeated_guestprevious_cancellationsprevious_bookings_not_canceledreserved_room_typeassigned_room_typebooking_changesdeposit_typedays_in_waiting_listcustomer_typeadrrequired_car_parking_spacestotal_of_special_requestsreservation_statusreservation_status_date
0Resort Hotel03422015July2710020.00BBDirectDirect000CC3No Deposit0Transient0.000Check-Out2015-07-01
1Resort Hotel07372015July2710020.00BBDirectDirect000CC4No Deposit0Transient0.000Check-Out2015-07-01
2Resort Hotel072015July2710110.00BBDirectDirect000AC0No Deposit0Transient75.000Check-Out2015-07-02
\n", + "
" + ], + "text/plain": [ + " hotel is_canceled lead_time arrival_date_year arrival_date_month \\\n", + "0 Resort Hotel 0 342 2015 July \n", + "1 Resort Hotel 0 737 2015 July \n", + "2 Resort Hotel 0 7 2015 July \n", + "\n", + " arrival_date_week_number arrival_date_day_of_month \\\n", + "0 27 1 \n", + "1 27 1 \n", + "2 27 1 \n", + "\n", + " stays_in_weekend_nights stays_in_week_nights adults children babies \\\n", + "0 0 0 2 0.0 0 \n", + "1 0 0 2 0.0 0 \n", + "2 0 1 1 0.0 0 \n", + "\n", + " meal market_segment distribution_channel is_repeated_guest \\\n", + "0 BB Direct Direct 0 \n", + "1 BB Direct Direct 0 \n", + "2 BB Direct Direct 0 \n", + "\n", + " previous_cancellations previous_bookings_not_canceled reserved_room_type \\\n", + "0 0 0 C \n", + "1 0 0 C \n", + "2 0 0 A \n", + "\n", + " assigned_room_type booking_changes deposit_type days_in_waiting_list \\\n", + "0 C 3 No Deposit 0 \n", + "1 C 4 No Deposit 0 \n", + "2 C 0 No Deposit 0 \n", + "\n", + " customer_type adr required_car_parking_spaces total_of_special_requests \\\n", + "0 Transient 0.0 0 0 \n", + "1 Transient 0.0 0 0 \n", + "2 Transient 75.0 0 0 \n", + "\n", + " reservation_status reservation_status_date \n", + "0 Check-Out 2015-07-01 \n", + "1 Check-Out 2015-07-01 \n", + "2 Check-Out 2015-07-02 " + ] + }, + "execution_count": 104, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = df.drop(columns=[\"company\"])\n", + "df.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "id": "23a71973-3e15-4ef2-ae48-bdfb6b925473", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "hotel 0\n", + "is_canceled 0\n", + "lead_time 0\n", + "arrival_date_year 0\n", + "arrival_date_month 0\n", + "arrival_date_week_number 0\n", + "arrival_date_day_of_month 0\n", + "stays_in_weekend_nights 0\n", + "stays_in_week_nights 0\n", + "adults 0\n", + "children 4\n", + "babies 0\n", + "meal 0\n", + "market_segment 0\n", + "distribution_channel 0\n", + "is_repeated_guest 0\n", + "previous_cancellations 0\n", + "previous_bookings_not_canceled 0\n", + "reserved_room_type 0\n", + "assigned_room_type 0\n", + "booking_changes 0\n", + "deposit_type 0\n", + "days_in_waiting_list 0\n", + "customer_type 0\n", + "adr 0\n", + "required_car_parking_spaces 0\n", + "total_of_special_requests 0\n", + "reservation_status 0\n", + "reservation_status_date 0\n", + "dtype: int64" + ] + }, + "execution_count": 105, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "2ab4e892-f89a-46d1-bf66-395e35d6f27c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 106, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['children'].median()" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "6e889d1a-b2be-4705-86ce-f31b5cae7ac4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.10388990333874994" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['children'].mean()" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "e30c1a5e-d8c4-46f0-a6e0-e3448bb6c8bb", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"children\"] = df[\"children\"].fillna(df[\"children\"].median()) # refilled the 4 children Rows with the median" + ] + }, + { + "cell_type": "code", + "execution_count": 109, + "id": "0339a836-eda3-4f7b-83d2-a422833d94ce", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "hotel 0\n", + "is_canceled 0\n", + "lead_time 0\n", + "arrival_date_year 0\n", + "arrival_date_month 0\n", + "arrival_date_week_number 0\n", + "arrival_date_day_of_month 0\n", + "stays_in_weekend_nights 0\n", + "stays_in_week_nights 0\n", + "adults 0\n", + "children 0\n", + "babies 0\n", + "meal 0\n", + "market_segment 0\n", + "distribution_channel 0\n", + "is_repeated_guest 0\n", + "previous_cancellations 0\n", + "previous_bookings_not_canceled 0\n", + "reserved_room_type 0\n", + "assigned_room_type 0\n", + "booking_changes 0\n", + "deposit_type 0\n", + "days_in_waiting_list 0\n", + "customer_type 0\n", + "adr 0\n", + "required_car_parking_spaces 0\n", + "total_of_special_requests 0\n", + "reservation_status 0\n", + "reservation_status_date 0\n", + "dtype: int64" + ] + }, + "execution_count": 109, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "id": "ac46391f-7c55-47ae-9f88-34e29e5125c7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotelis_canceledlead_timearrival_date_yeararrival_date_montharrival_date_week_numberarrival_date_day_of_monthstays_in_weekend_nightsstays_in_week_nightsadultschildrenbabiesmealmarket_segmentdistribution_channelis_repeated_guestprevious_cancellationsprevious_bookings_not_canceledreserved_room_typeassigned_room_typebooking_changesdeposit_typedays_in_waiting_listcustomer_typeadrrequired_car_parking_spacestotal_of_special_requestsreservation_statusreservation_status_date
0Resort Hotel03422015July2710020.00BBDirectDirect000CC3No Deposit0Transient0.000Check-Out2015-07-01
1Resort Hotel07372015July2710020.00BBDirectDirect000CC4No Deposit0Transient0.000Check-Out2015-07-01
2Resort Hotel072015July2710110.00BBDirectDirect000AC0No Deposit0Transient75.000Check-Out2015-07-02
\n", + "
" + ], + "text/plain": [ + " hotel is_canceled lead_time arrival_date_year arrival_date_month \\\n", + "0 Resort Hotel 0 342 2015 July \n", + "1 Resort Hotel 0 737 2015 July \n", + "2 Resort Hotel 0 7 2015 July \n", + "\n", + " arrival_date_week_number arrival_date_day_of_month \\\n", + "0 27 1 \n", + "1 27 1 \n", + "2 27 1 \n", + "\n", + " stays_in_weekend_nights stays_in_week_nights adults children babies \\\n", + "0 0 0 2 0.0 0 \n", + "1 0 0 2 0.0 0 \n", + "2 0 1 1 0.0 0 \n", + "\n", + " meal market_segment distribution_channel is_repeated_guest \\\n", + "0 BB Direct Direct 0 \n", + "1 BB Direct Direct 0 \n", + "2 BB Direct Direct 0 \n", + "\n", + " previous_cancellations previous_bookings_not_canceled reserved_room_type \\\n", + "0 0 0 C \n", + "1 0 0 C \n", + "2 0 0 A \n", + "\n", + " assigned_room_type booking_changes deposit_type days_in_waiting_list \\\n", + "0 C 3 No Deposit 0 \n", + "1 C 4 No Deposit 0 \n", + "2 C 0 No Deposit 0 \n", + "\n", + " customer_type adr required_car_parking_spaces total_of_special_requests \\\n", + "0 Transient 0.0 0 0 \n", + "1 Transient 0.0 0 0 \n", + "2 Transient 75.0 0 0 \n", + "\n", + " reservation_status reservation_status_date \n", + "0 Check-Out 2015-07-01 \n", + "1 Check-Out 2015-07-01 \n", + "2 Check-Out 2015-07-02 " + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 111, + "id": "187898c1-9eb9-4e33-b2ff-6e219ae51351", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countmeanstdmin25%50%75%max
is_canceled119390.00.3704160.4829180.000.000.0001.01.0
lead_time119390.0104.011416106.8630970.0018.0069.000160.0737.0
arrival_date_year119390.02016.1565540.7074762015.002016.002016.0002017.02017.0
arrival_date_week_number119390.027.16517313.6051381.0016.0028.00038.053.0
arrival_date_day_of_month119390.015.7982418.7808291.008.0016.00023.031.0
stays_in_weekend_nights119390.00.9275990.9986130.000.001.0002.019.0
stays_in_week_nights119390.02.5003021.9082860.001.002.0003.050.0
adults119390.01.8564030.5792610.002.002.0002.055.0
children119390.00.1038860.3985550.000.000.0000.010.0
babies119390.00.0079490.0974360.000.000.0000.010.0
is_repeated_guest119390.00.0319120.1757670.000.000.0000.01.0
previous_cancellations119390.00.0871180.8443360.000.000.0000.026.0
previous_bookings_not_canceled119390.00.1370971.4974370.000.000.0000.072.0
booking_changes119390.00.2211240.6523060.000.000.0000.021.0
days_in_waiting_list119390.02.32114917.5947210.000.000.0000.0391.0
adr119390.0101.83112250.535790-6.3869.2994.575126.05400.0
required_car_parking_spaces119390.00.0625180.2452910.000.000.0000.08.0
total_of_special_requests119390.00.5713630.7927980.000.000.0001.05.0
\n", + "
" + ], + "text/plain": [ + " count mean std min \\\n", + "is_canceled 119390.0 0.370416 0.482918 0.00 \n", + "lead_time 119390.0 104.011416 106.863097 0.00 \n", + "arrival_date_year 119390.0 2016.156554 0.707476 2015.00 \n", + "arrival_date_week_number 119390.0 27.165173 13.605138 1.00 \n", + "arrival_date_day_of_month 119390.0 15.798241 8.780829 1.00 \n", + "stays_in_weekend_nights 119390.0 0.927599 0.998613 0.00 \n", + "stays_in_week_nights 119390.0 2.500302 1.908286 0.00 \n", + "adults 119390.0 1.856403 0.579261 0.00 \n", + "children 119390.0 0.103886 0.398555 0.00 \n", + "babies 119390.0 0.007949 0.097436 0.00 \n", + "is_repeated_guest 119390.0 0.031912 0.175767 0.00 \n", + "previous_cancellations 119390.0 0.087118 0.844336 0.00 \n", + "previous_bookings_not_canceled 119390.0 0.137097 1.497437 0.00 \n", + "booking_changes 119390.0 0.221124 0.652306 0.00 \n", + "days_in_waiting_list 119390.0 2.321149 17.594721 0.00 \n", + "adr 119390.0 101.831122 50.535790 -6.38 \n", + "required_car_parking_spaces 119390.0 0.062518 0.245291 0.00 \n", + "total_of_special_requests 119390.0 0.571363 0.792798 0.00 \n", + "\n", + " 25% 50% 75% max \n", + "is_canceled 0.00 0.000 1.0 1.0 \n", + "lead_time 18.00 69.000 160.0 737.0 \n", + "arrival_date_year 2016.00 2016.000 2017.0 2017.0 \n", + "arrival_date_week_number 16.00 28.000 38.0 53.0 \n", + "arrival_date_day_of_month 8.00 16.000 23.0 31.0 \n", + "stays_in_weekend_nights 0.00 1.000 2.0 19.0 \n", + "stays_in_week_nights 1.00 2.000 3.0 50.0 \n", + "adults 2.00 2.000 2.0 55.0 \n", + "children 0.00 0.000 0.0 10.0 \n", + "babies 0.00 0.000 0.0 10.0 \n", + "is_repeated_guest 0.00 0.000 0.0 1.0 \n", + "previous_cancellations 0.00 0.000 0.0 26.0 \n", + "previous_bookings_not_canceled 0.00 0.000 0.0 72.0 \n", + "booking_changes 0.00 0.000 0.0 21.0 \n", + "days_in_waiting_list 0.00 0.000 0.0 391.0 \n", + "adr 69.29 94.575 126.0 5400.0 \n", + "required_car_parking_spaces 0.00 0.000 0.0 8.0 \n", + "total_of_special_requests 0.00 0.000 1.0 5.0 " + ] + }, + "execution_count": 111, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe().T" + ] + }, + { + "cell_type": "code", + "execution_count": 112, + "id": "4b1be270-f77f-4665-975e-6c7b971612e7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(119390, 29)" + ] + }, + "execution_count": 112, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 113, + "id": "ca13a2f3-c478-47c0-95be-1037c40a816c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "hotel object\n", + "is_canceled int64\n", + "lead_time int64\n", + "arrival_date_year int64\n", + "arrival_date_month object\n", + "arrival_date_week_number int64\n", + "arrival_date_day_of_month int64\n", + "stays_in_weekend_nights int64\n", + "stays_in_week_nights int64\n", + "adults int64\n", + "children float64\n", + "babies int64\n", + "meal object\n", + "market_segment object\n", + "distribution_channel object\n", + "is_repeated_guest int64\n", + "previous_cancellations int64\n", + "previous_bookings_not_canceled int64\n", + "reserved_room_type object\n", + "assigned_room_type object\n", + "booking_changes int64\n", + "deposit_type object\n", + "days_in_waiting_list int64\n", + "customer_type object\n", + "adr float64\n", + "required_car_parking_spaces int64\n", + "total_of_special_requests int64\n", + "reservation_status object\n", + "reservation_status_date object\n", + "dtype: object" + ] + }, + "execution_count": 113, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "id": "947268da-dfd3-49e3-89c9-485fc51926ed", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0\n", + "1 0\n", + "2 1\n", + "Name: stays_in_week_nights, dtype: int64" + ] + }, + "execution_count": 114, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.stays_in_week_nights.head(3)" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "id": "fad1bc87-4c98-4af2-806b-a0df65f7ed32", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0\n", + "1 0\n", + "2 1\n", + "3 1\n", + "4 2\n", + " ..\n", + "119385 7\n", + "119386 7\n", + "119387 7\n", + "119388 7\n", + "119389 9\n", + "Name: rn_sum, Length: 119390, dtype: int64" + ] + }, + "execution_count": 115, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['rn_sum'] =df['stays_in_weekend_nights'] + df['stays_in_week_nights']\n", + "df.rn_sum # New KPI" + ] + }, + { + "cell_type": "code", + "execution_count": 116, + "id": "1e5799e7-5190-4270-a540-891a3c4a9b99", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotelis_canceledlead_timearrival_date_yeararrival_date_montharrival_date_week_numberarrival_date_day_of_monthstays_in_weekend_nightsstays_in_week_nightsadultschildrenbabiesmealmarket_segmentdistribution_channelis_repeated_guestprevious_cancellationsprevious_bookings_not_canceledreserved_room_typeassigned_room_typebooking_changesdeposit_typedays_in_waiting_listcustomer_typeadrrequired_car_parking_spacestotal_of_special_requestsreservation_statusreservation_status_datern_sum
0Resort Hotel03422015July2710020.00BBDirectDirect000CC3No Deposit0Transient0.000Check-Out2015-07-010
1Resort Hotel07372015July2710020.00BBDirectDirect000CC4No Deposit0Transient0.000Check-Out2015-07-010
2Resort Hotel072015July2710110.00BBDirectDirect000AC0No Deposit0Transient75.000Check-Out2015-07-021
3Resort Hotel0132015July2710110.00BBCorporateCorporate000AA0No Deposit0Transient75.000Check-Out2015-07-021
4Resort Hotel0142015July2710220.00BBOnline TATA/TO000AA0No Deposit0Transient98.001Check-Out2015-07-032
\n", + "
" + ], + "text/plain": [ + " hotel is_canceled lead_time arrival_date_year arrival_date_month \\\n", + "0 Resort Hotel 0 342 2015 July \n", + "1 Resort Hotel 0 737 2015 July \n", + "2 Resort Hotel 0 7 2015 July \n", + "3 Resort Hotel 0 13 2015 July \n", + "4 Resort Hotel 0 14 2015 July \n", + "\n", + " arrival_date_week_number arrival_date_day_of_month \\\n", + "0 27 1 \n", + "1 27 1 \n", + "2 27 1 \n", + "3 27 1 \n", + "4 27 1 \n", + "\n", + " stays_in_weekend_nights stays_in_week_nights adults children babies \\\n", + "0 0 0 2 0.0 0 \n", + "1 0 0 2 0.0 0 \n", + "2 0 1 1 0.0 0 \n", + "3 0 1 1 0.0 0 \n", + "4 0 2 2 0.0 0 \n", + "\n", + " meal market_segment distribution_channel is_repeated_guest \\\n", + "0 BB Direct Direct 0 \n", + "1 BB Direct Direct 0 \n", + "2 BB Direct Direct 0 \n", + "3 BB Corporate Corporate 0 \n", + "4 BB Online TA TA/TO 0 \n", + "\n", + " previous_cancellations previous_bookings_not_canceled reserved_room_type \\\n", + "0 0 0 C \n", + "1 0 0 C \n", + "2 0 0 A \n", + "3 0 0 A \n", + "4 0 0 A \n", + "\n", + " assigned_room_type booking_changes deposit_type days_in_waiting_list \\\n", + "0 C 3 No Deposit 0 \n", + "1 C 4 No Deposit 0 \n", + "2 C 0 No Deposit 0 \n", + "3 A 0 No Deposit 0 \n", + "4 A 0 No Deposit 0 \n", + "\n", + " customer_type adr required_car_parking_spaces total_of_special_requests \\\n", + "0 Transient 0.0 0 0 \n", + "1 Transient 0.0 0 0 \n", + "2 Transient 75.0 0 0 \n", + "3 Transient 75.0 0 0 \n", + "4 Transient 98.0 0 1 \n", + "\n", + " reservation_status reservation_status_date rn_sum \n", + "0 Check-Out 2015-07-01 0 \n", + "1 Check-Out 2015-07-01 0 \n", + "2 Check-Out 2015-07-02 1 \n", + "3 Check-Out 2015-07-02 1 \n", + "4 Check-Out 2015-07-03 2 " + ] + }, + "execution_count": 116, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 117, + "id": "69ccee3b-0381-427b-840c-f63fe5566271", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.00\n", + "1 0.00\n", + "2 75.00\n", + "3 75.00\n", + "4 196.00\n", + " ... \n", + "119385 672.98\n", + "119386 1578.01\n", + "119387 1103.97\n", + "119388 730.80\n", + "119389 1360.80\n", + "Name: revenue_total, Length: 119390, dtype: float64" + ] + }, + "execution_count": 117, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df['revenue_total'] =df['rn_sum'] * df['adr']\n", + "df.revenue_total # New KPI" + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "id": "5873b4e3-2710-4702-b751-0529bd43b0f4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['hotel', 'is_canceled', 'lead_time', 'arrival_date_year',\n", + " 'arrival_date_month', 'arrival_date_week_number',\n", + " 'arrival_date_day_of_month', 'stays_in_weekend_nights',\n", + " 'stays_in_week_nights', 'adults', 'children', 'babies', 'meal',\n", + " 'market_segment', 'distribution_channel', 'is_repeated_guest',\n", + " 'previous_cancellations', 'previous_bookings_not_canceled',\n", + " 'reserved_room_type', 'assigned_room_type', 'booking_changes',\n", + " 'deposit_type', 'days_in_waiting_list', 'customer_type', 'adr',\n", + " 'required_car_parking_spaces', 'total_of_special_requests',\n", + " 'reservation_status', 'reservation_status_date', 'rn_sum',\n", + " 'revenue_total'],\n", + " dtype='object')" + ] + }, + "execution_count": 118, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "id": "6dfb2108-15e3-4926-9032-744ab7938a6d", + "metadata": {}, + "outputs": [], + "source": [ + "df1 = df.copy()" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "id": "35b6cbca-f8b3-4ad1-b0fe-7e5f15014c65", + "metadata": {}, + "outputs": [], + "source": [ + "num = df1.select_dtypes(include=\"number\")\n", + "cat = df1.select_dtypes(exclude=\"number\")" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "id": "90efafcf-8b99-4724-a491-8fffceee67cc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotelarrival_date_monthmealmarket_segmentdistribution_channelreserved_room_typeassigned_room_typedeposit_typecustomer_typereservation_statusreservation_status_date
0Resort HotelJulyBBDirectDirectCCNo DepositTransientCheck-Out2015-07-01
1Resort HotelJulyBBDirectDirectCCNo DepositTransientCheck-Out2015-07-01
2Resort HotelJulyBBDirectDirectACNo DepositTransientCheck-Out2015-07-02
3Resort HotelJulyBBCorporateCorporateAANo DepositTransientCheck-Out2015-07-02
4Resort HotelJulyBBOnline TATA/TOAANo DepositTransientCheck-Out2015-07-03
....................................
119385City HotelAugustBBOffline TA/TOTA/TOAANo DepositTransientCheck-Out2017-09-06
119386City HotelAugustBBOnline TATA/TOEENo DepositTransientCheck-Out2017-09-07
119387City HotelAugustBBOnline TATA/TODDNo DepositTransientCheck-Out2017-09-07
119388City HotelAugustBBOnline TATA/TOAANo DepositTransientCheck-Out2017-09-07
119389City HotelAugustHBOnline TATA/TOAANo DepositTransientCheck-Out2017-09-07
\n", + "

119390 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " hotel arrival_date_month meal market_segment \\\n", + "0 Resort Hotel July BB Direct \n", + "1 Resort Hotel July BB Direct \n", + "2 Resort Hotel July BB Direct \n", + "3 Resort Hotel July BB Corporate \n", + "4 Resort Hotel July BB Online TA \n", + "... ... ... ... ... \n", + "119385 City Hotel August BB Offline TA/TO \n", + "119386 City Hotel August BB Online TA \n", + "119387 City Hotel August BB Online TA \n", + "119388 City Hotel August BB Online TA \n", + "119389 City Hotel August HB Online TA \n", + "\n", + " distribution_channel reserved_room_type assigned_room_type \\\n", + "0 Direct C C \n", + "1 Direct C C \n", + "2 Direct A C \n", + "3 Corporate A A \n", + "4 TA/TO A A \n", + "... ... ... ... \n", + "119385 TA/TO A A \n", + "119386 TA/TO E E \n", + "119387 TA/TO D D \n", + "119388 TA/TO A A \n", + "119389 TA/TO A A \n", + "\n", + " deposit_type customer_type reservation_status reservation_status_date \n", + "0 No Deposit Transient Check-Out 2015-07-01 \n", + "1 No Deposit Transient Check-Out 2015-07-01 \n", + "2 No Deposit Transient Check-Out 2015-07-02 \n", + "3 No Deposit Transient Check-Out 2015-07-02 \n", + "4 No Deposit Transient Check-Out 2015-07-03 \n", + "... ... ... ... ... \n", + "119385 No Deposit Transient Check-Out 2017-09-06 \n", + "119386 No Deposit Transient Check-Out 2017-09-07 \n", + "119387 No Deposit Transient Check-Out 2017-09-07 \n", + "119388 No Deposit Transient Check-Out 2017-09-07 \n", + "119389 No Deposit Transient Check-Out 2017-09-07 \n", + "\n", + "[119390 rows x 11 columns]" + ] + }, + "execution_count": 121, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cat" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "id": "a21d6989-cba3-41df-9446-3c820ff98ef4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotelarrival_date_monthmealmarket_segmentdistribution_channelreserved_room_typeassigned_room_typedeposit_typecustomer_typereservation_statusreservation_status_date
0Resort HotelJulyBBDirectDirectCCNo DepositTransientCheck-Out2015-07-01
1Resort HotelJulyBBDirectDirectCCNo DepositTransientCheck-Out2015-07-01
\n", + "
" + ], + "text/plain": [ + " hotel arrival_date_month meal market_segment distribution_channel \\\n", + "0 Resort Hotel July BB Direct Direct \n", + "1 Resort Hotel July BB Direct Direct \n", + "\n", + " reserved_room_type assigned_room_type deposit_type customer_type \\\n", + "0 C C No Deposit Transient \n", + "1 C C No Deposit Transient \n", + "\n", + " reservation_status reservation_status_date \n", + "0 Check-Out 2015-07-01 \n", + "1 Check-Out 2015-07-01 " + ] + }, + "execution_count": 122, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cat.head(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "id": "17107090-bc8d-495f-a89a-4764bc53635b", + "metadata": {}, + "outputs": [], + "source": [ + "frequency_table_dist = cat.market_segment.value_counts() # Hotel distribuition\n", + "proportion_table_dist = cat.market_segment.value_counts(normalize=True).round(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "id": "813ed6d4-5c35-4497-8646-e19e3a090b23", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
absolute_frequencyrelative_frequency
market_segment
Online TA564770047.0%
Offline TA/TO242190020.0%
Groups198110017.0%
Direct126060011.0%
Corporate5295004.0%
Complementary743001.0%
Aviation237000.0%
Undefined2000.0%
\n", + "
" + ], + "text/plain": [ + " absolute_frequency relative_frequency\n", + "market_segment \n", + "Online TA 5647700 47.0%\n", + "Offline TA/TO 2421900 20.0%\n", + "Groups 1981100 17.0%\n", + "Direct 1260600 11.0%\n", + "Corporate 529500 4.0%\n", + "Complementary 74300 1.0%\n", + "Aviation 23700 0.0%\n", + "Undefined 200 0.0%" + ] + }, + "execution_count": 124, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_dist = (pd.concat([frequency_table_dist, proportion_table_dist], axis=1)*100)\n", + "df_dist.columns = ['absolute_frequency', 'relative_frequency']\n", + "df_dist['relative_frequency'] = df_dist['relative_frequency'].astype(str) + '%'\n", + "df_dist" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "id": "929b6247-65d4-476c-ac05-b895b950d9a9", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
col_0count
reservation_status
Canceled43017
Check-Out75166
No-Show1207
\n", + "
" + ], + "text/plain": [ + "col_0 count\n", + "reservation_status \n", + "Canceled 43017\n", + "Check-Out 75166\n", + "No-Show 1207" + ] + }, + "execution_count": 125, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.crosstab(index=cat.reservation_status,\n", + " columns='count')" + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "id": "540d388a-d997-4a4c-a47e-6aabea0d5f2c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotelCity HotelResort Hotel
reservation_status
Canceled3218610831
Check-Out4622828938
No-Show916291
\n", + "
" + ], + "text/plain": [ + "hotel City Hotel Resort Hotel\n", + "reservation_status \n", + "Canceled 32186 10831\n", + "Check-Out 46228 28938\n", + "No-Show 916 291" + ] + }, + "execution_count": 126, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "crosstab_result_resv = pd.crosstab(index=cat.reservation_status, columns=cat.hotel)\n", + "crosstab_result_resv " + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "id": "f1c3a651-d76f-4465-9324-b3bcc7447056", + "metadata": {}, + "outputs": [], + "source": [ + "frequency_table_resv = cat.reservation_status.value_counts() # counting the different Reservation Status\n", + "proportion_table_resv = cat.reservation_status.value_counts(normalize=True).round(2) # converting the countings in the proportional part" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5eba114c-7920-4f6f-8899-d9e0ea7acd2d", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 128, + "id": "3fda43a7-a4c4-4a8f-94c6-4f487aa420b4", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
absolute_frequencyrelative_frequency
reservation_status
Check-Out751660063.0%
Canceled430170036.0%
No-Show1207001.0%
\n", + "
" + ], + "text/plain": [ + " absolute_frequency relative_frequency\n", + "reservation_status \n", + "Check-Out 7516600 63.0%\n", + "Canceled 4301700 36.0%\n", + "No-Show 120700 1.0%" + ] + }, + "execution_count": 128, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_resv = pd.concat([frequency_table_resv, proportion_table_resv], axis=1)*100 # convert to percentage\n", + "df_resv.columns = ['absolute_frequency', 'relative_frequency']\n", + "df_resv['relative_frequency'] = df_resv['relative_frequency'].apply(lambda x: f\"{x}%\") #appling % \n", + "df_resv" + ] + }, + { + "cell_type": "code", + "execution_count": 129, + "id": "35569567-e452-4c3e-9892-29b77c1a5bfd", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
hotelis_canceledlead_timearrival_date_yeararrival_date_montharrival_date_week_numberarrival_date_day_of_monthstays_in_weekend_nightsstays_in_week_nightsadultschildrenbabiesmealmarket_segmentdistribution_channelis_repeated_guestprevious_cancellationsprevious_bookings_not_canceledreserved_room_typeassigned_room_typebooking_changesdeposit_typedays_in_waiting_listcustomer_typeadrrequired_car_parking_spacestotal_of_special_requestsreservation_statusreservation_status_datern_sumrevenue_total
0Resort Hotel03422015July2710020.00BBDirectDirect000CC3No Deposit0Transient0.000Check-Out2015-07-0100.0
1Resort Hotel07372015July2710020.00BBDirectDirect000CC4No Deposit0Transient0.000Check-Out2015-07-0100.0
\n", + "
" + ], + "text/plain": [ + " hotel is_canceled lead_time arrival_date_year arrival_date_month \\\n", + "0 Resort Hotel 0 342 2015 July \n", + "1 Resort Hotel 0 737 2015 July \n", + "\n", + " arrival_date_week_number arrival_date_day_of_month \\\n", + "0 27 1 \n", + "1 27 1 \n", + "\n", + " stays_in_weekend_nights stays_in_week_nights adults children babies \\\n", + "0 0 0 2 0.0 0 \n", + "1 0 0 2 0.0 0 \n", + "\n", + " meal market_segment distribution_channel is_repeated_guest \\\n", + "0 BB Direct Direct 0 \n", + "1 BB Direct Direct 0 \n", + "\n", + " previous_cancellations previous_bookings_not_canceled reserved_room_type \\\n", + "0 0 0 C \n", + "1 0 0 C \n", + "\n", + " assigned_room_type booking_changes deposit_type days_in_waiting_list \\\n", + "0 C 3 No Deposit 0 \n", + "1 C 4 No Deposit 0 \n", + "\n", + " customer_type adr required_car_parking_spaces total_of_special_requests \\\n", + "0 Transient 0.0 0 0 \n", + "1 Transient 0.0 0 0 \n", + "\n", + " reservation_status reservation_status_date rn_sum revenue_total \n", + "0 Check-Out 2015-07-01 0 0.0 \n", + "1 Check-Out 2015-07-01 0 0.0 " + ] + }, + "execution_count": 129, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 130, + "id": "67a85b82-0a2e-4f5c-99b0-dfb730f75d86", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['hotel', 'is_canceled', 'lead_time', 'arrival_date_year',\n", + " 'arrival_date_month', 'arrival_date_week_number',\n", + " 'arrival_date_day_of_month', 'stays_in_weekend_nights',\n", + " 'stays_in_week_nights', 'adults', 'children', 'babies', 'meal',\n", + " 'market_segment', 'distribution_channel', 'is_repeated_guest',\n", + " 'previous_cancellations', 'previous_bookings_not_canceled',\n", + " 'reserved_room_type', 'assigned_room_type', 'booking_changes',\n", + " 'deposit_type', 'days_in_waiting_list', 'customer_type', 'adr',\n", + " 'required_car_parking_spaces', 'total_of_special_requests',\n", + " 'reservation_status', 'reservation_status_date', 'rn_sum',\n", + " 'revenue_total'],\n", + " dtype='object')" + ] + }, + "execution_count": 130, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 131, + "id": "0a1cf4fc-382d-4429-be95-2472a5aa8b08", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
medianmean
hotelreservation_status
City HotelCanceled100.0105.0
Check-Out100.0106.0
No-Show92.0102.0
Resort HotelCanceled84.0106.0
Check-Out72.091.0
No-Show63.080.0
\n", + "
" + ], + "text/plain": [ + " median mean\n", + "hotel reservation_status \n", + "City Hotel Canceled 100.0 105.0\n", + " Check-Out 100.0 106.0\n", + " No-Show 92.0 102.0\n", + "Resort Hotel Canceled 84.0 106.0\n", + " Check-Out 72.0 91.0\n", + " No-Show 63.0 80.0" + ] + }, + "execution_count": 131, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_resv_adr = df.groupby([\"hotel\", \"reservation_status\"])[\"adr\"].agg([\"median\", \"mean\"]) # AvDailyRate - count, mean, median\n", + "round(df_resv_adr)" + ] + }, + { + "cell_type": "code", + "execution_count": 132, + "id": "f429f7fb-4b87-4540-a900-2297f010fb4b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
medianmean
hotelreservation_status
City HotelCanceled100.0€105.0€
Check-Out100.0€106.0€
No-Show92.0€102.0€
Resort HotelCanceled84.0€106.0€
Check-Out72.0€91.0€
No-Show63.0€80.0€
\n", + "
" + ], + "text/plain": [ + " median mean\n", + "hotel reservation_status \n", + "City Hotel Canceled 100.0€ 105.0€\n", + " Check-Out 100.0€ 106.0€\n", + " No-Show 92.0€ 102.0€\n", + "Resort Hotel Canceled 84.0€ 106.0€\n", + " Check-Out 72.0€ 91.0€\n", + " No-Show 63.0€ 80.0€" + ] + }, + "execution_count": 132, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_resv_adr_r = df_resv_adr.round()\n", + "df_resv_adr_r['median'] = df_resv_adr_r['median'].apply(lambda x: f'{x:.1f}€')\n", + "df_resv_adr_r['mean'] = df_resv_adr_r['mean'].apply(lambda x: f'{x:.1f}€')\n", + "\n", + "df_resv_adr_r" + ] + }, + { + "cell_type": "code", + "execution_count": 133, + "id": "11190dd5-3a69-4fea-bfda-cb7d26cec7a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countmedianmean
hotelreservation_status
City HotelCanceled321863.03.0
Check-Out462283.03.0
No-Show9163.04.0
Resort HotelCanceled108314.05.0
Check-Out289383.04.0
No-Show2912.03.0
\n", + "
" + ], + "text/plain": [ + " count median mean\n", + "hotel reservation_status \n", + "City Hotel Canceled 32186 3.0 3.0\n", + " Check-Out 46228 3.0 3.0\n", + " No-Show 916 3.0 4.0\n", + "Resort Hotel Canceled 10831 4.0 5.0\n", + " Check-Out 28938 3.0 4.0\n", + " No-Show 291 2.0 3.0" + ] + }, + "execution_count": 133, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_resv_rn = df.groupby([\"hotel\", \"reservation_status\"])[\"rn_sum\"].agg([\"count\", \"median\", \"mean\"]) # RoomNights - count, mean(avStayby Reservation, median\n", + "round(df_resv_rn)" + ] + }, + { + "cell_type": "code", + "execution_count": 134, + "id": "8d86d2a3-47f7-4036-a2be-bf7178c2d8b7", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
rn_sum
countmedianmeanstd
hoteldistribution_channel
City HotelCorporate34082.02.01.8
Direct67802.02.82.3
GDS1931.02.01.9
TA/TO689453.03.11.8
Undefined42.03.02.7
Resort HotelCorporate32692.02.82.7
Direct78653.03.63.1
TA/TO289254.04.73.4
Undefined15.05.0NaN
\n", + "
" + ], + "text/plain": [ + " rn_sum \n", + " count median mean std\n", + "hotel distribution_channel \n", + "City Hotel Corporate 3408 2.0 2.0 1.8\n", + " Direct 6780 2.0 2.8 2.3\n", + " GDS 193 1.0 2.0 1.9\n", + " TA/TO 68945 3.0 3.1 1.8\n", + " Undefined 4 2.0 3.0 2.7\n", + "Resort Hotel Corporate 3269 2.0 2.8 2.7\n", + " Direct 7865 3.0 3.6 3.1\n", + " TA/TO 28925 4.0 4.7 3.4\n", + " Undefined 1 5.0 5.0 NaN" + ] + }, + "execution_count": 134, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_resv_dist = df.groupby([\"hotel\", \"distribution_channel\"])[\"rn_sum\",].agg([\"count\", \"median\", \"mean\", \"std\"]) # RoomNights - count, mean, median\n", + "df_resv_dist_r = df_resv_dist.round(1)\n", + "df_resv_dist_r" + ] + }, + { + "cell_type": "code", + "execution_count": 135, + "id": "ba879938-6330-4a0a-a5f7-f5e91af5439c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countmedianmeanstd
hotelmeal
City HotelBB623053.03.01.8
FB443.02.70.6
HB64172.02.81.5
SC105643.02.92.2
Resort HotelBB300053.04.03.2
FB7543.04.12.4
HB80465.05.63.8
SC865.06.87.5
Undefined11693.04.32.9
\n", + "
" + ], + "text/plain": [ + " count median mean std\n", + "hotel meal \n", + "City Hotel BB 62305 3.0 3.0 1.8\n", + " FB 44 3.0 2.7 0.6\n", + " HB 6417 2.0 2.8 1.5\n", + " SC 10564 3.0 2.9 2.2\n", + "Resort Hotel BB 30005 3.0 4.0 3.2\n", + " FB 754 3.0 4.1 2.4\n", + " HB 8046 5.0 5.6 3.8\n", + " SC 86 5.0 6.8 7.5\n", + " Undefined 1169 3.0 4.3 2.9" + ] + }, + "execution_count": 135, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_resv_meal = df.groupby([\"hotel\", \"meal\"])[\"rn_sum\"].agg([\"count\", \"median\", \"mean\", \"std\"]) # RoomNights - count, mean, median\n", + "df_resv_meal_r = df_resv_meal.round(1)\n", + "df_resv_meal_r" + ] + }, + { + "cell_type": "code", + "execution_count": 136, + "id": "385d9ad3-a323-4cf0-a894-9aff01cd7f5b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['hotel', 'is_canceled', 'lead_time', 'arrival_date_year',\n", + " 'arrival_date_month', 'arrival_date_week_number',\n", + " 'arrival_date_day_of_month', 'stays_in_weekend_nights',\n", + " 'stays_in_week_nights', 'adults', 'children', 'babies', 'meal',\n", + " 'market_segment', 'distribution_channel', 'is_repeated_guest',\n", + " 'previous_cancellations', 'previous_bookings_not_canceled',\n", + " 'reserved_room_type', 'assigned_room_type', 'booking_changes',\n", + " 'deposit_type', 'days_in_waiting_list', 'customer_type', 'adr',\n", + " 'required_car_parking_spaces', 'total_of_special_requests',\n", + " 'reservation_status', 'reservation_status_date', 'rn_sum',\n", + " 'revenue_total'],\n", + " dtype='object')" + ] + }, + "execution_count": 136, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 189, + "id": "f7780a5b-6d73-41a4-a8e8-34dd06ac5ab0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Chi-Square Statistic: (2225, 0)\n", + "P-value: 0.0\n" + ] + } + ], + "source": [ + "from scipy.stats import chi2_contingency\n", + "contingency_table = pd.crosstab(df['hotel'], df['is_canceled']) # perform a Chi square, howhever i dont know so much about it\n", + "\n", + "chi2, p, dof, expected = chi2_contingency(contingency_table)\n", + "print(f\"Chi-Square Statistic: {round(chi2),0}\")\n", + "print(f\"P-value: {p}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 138, + "id": "c0e721c3-fdca-464e-b47f-99400874830d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
countmedianmeanstd
hotelmeal
City HotelBB623053.03.01.8
FB443.02.70.6
HB64172.02.81.5
SC105643.02.92.2
Resort HotelBB300053.04.03.2
FB7543.04.12.4
HB80465.05.63.8
SC865.06.87.5
Undefined11693.04.32.9
\n", + "
" + ], + "text/plain": [ + " count median mean std\n", + "hotel meal \n", + "City Hotel BB 62305 3.0 3.0 1.8\n", + " FB 44 3.0 2.7 0.6\n", + " HB 6417 2.0 2.8 1.5\n", + " SC 10564 3.0 2.9 2.2\n", + "Resort Hotel BB 30005 3.0 4.0 3.2\n", + " FB 754 3.0 4.1 2.4\n", + " HB 8046 5.0 5.6 3.8\n", + " SC 86 5.0 6.8 7.5\n", + " Undefined 1169 3.0 4.3 2.9" + ] + }, + "execution_count": 138, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df_resv_meal_r" + ] + }, + { + "cell_type": "code", + "execution_count": 139, + "id": "a3402a5b-0e40-4804-b5d1-b33dba2ee0f5", + "metadata": {}, + "outputs": [], + "source": [ + "df.to_excel(\"clean_data.xlsx\", index=False)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "78e06147-fcb3-4637-a6aa-8fb15c26f4c6", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}