如何在Pandas透视表中仅显示单一年份的列数据?
嗨,我来帮你搞定这个问题!要让Pandas透视表只展示2015年的数据,有两种实用的方法,你可以根据自己的场景选择:
方法1:先过滤数据再生成透视表(更推荐)
这种方式效率更高,尤其是处理大数据集的时候——我们先把范围缩小到2015年的数据,避免多余的计算。
具体代码如下:
# 第一步:筛选出仅2015年的记录 filtered_df = df[df["Departure Datetime: Year (YYYY)"] == 2015] # 第二步:基于筛选后的数据生成透视表 pivot_2015 = pd.pivot_table( filtered_df, values="Value", index=["Reporting Route Description"], aggfunc="sum", columns=["Departure Datetime: Year (YYYY)"] )
这样生成的透视表自然就只有2015年这一列啦。
方法2:先生成完整透视表再筛选列
如果你已经生成了包含所有年份的透视表,也可以直接从里面提取2015年的列。假设你原本的透视表变量叫full_pivot:
# 注意:要确认年份列的类型是整数还是字符串 # 如果列名是整数2015: pivot_2015 = full_pivot[[2015]] # 如果列名是字符串"2015",就改成: # pivot_2015 = full_pivot[["2015"]]
执行后就能得到只保留2015年数据的透视表了。
小提醒:如果用第二种方法,一定要核对年份列的数据类型,不然可能会出现“找不到列”的报错哦~
内容的提问来源于stack exchange,提问作者Hannan
相关产品推荐
相关产品推荐

