You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按年份统计展示预订订单的已入住、取消对应布尔值结果

问题解决步骤

1. 调整统计输出

你原本的pd.crosstab逻辑无误,仅需补充列名重命名即可得到易读的统计结果:

import pandas as pd

# 生成交叉统计结果
year_cancel_stat = pd.crosstab(
    index=df["arrival_date_year"],
    columns=df["is_canceled"],
    margins=True,
    margins_name="总订单数"
).rename(
    columns={0: "已入住", 1: "已取消"},
    index=lambda x: f"{x}年" if isinstance(x, int) else x
)

# 打印统计结果
print(year_cancel_stat)

运行后会直接输出每一年的已入住、已取消订单量,以及对应年份的总订单量、所有年份的全局汇总数据。

2. 绘制状态对比图

如果需要可视化对比结果,可以用如下代码生成分组柱状图:

import matplotlib.pyplot as plt

# 过滤掉全局汇总行,仅用各年份数据绘图
plot_df = year_cancel_stat.drop("总订单数", axis=0)

# 绘制分组柱状图
plot_df.plot(
    kind="bar",
    figsize=(9, 5),
    color=["#1f77b4", "#ff7f0e"]
)
plt.title("各年份预订订单状态分布")
plt.xlabel("入住年份")
plt.ylabel("订单数量")
plt.xticks(rotation=0)
plt.legend(title="订单状态")
plt.grid(axis="y", alpha=0.3)
plt.tight_layout()
plt.show()

如果需要展示各年份的取消/入住占比,仅需在plot参数中增加stacked=True即可生成堆叠柱状图。

内容的提问来源于stack exchange,提问作者Charasvara Cheerasemanont

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:45:09