首页 > 解决方案 > 如果列不存在,则新列的熊猫数据透视表错误计算

问题描述

我是 python 的新手,我在 pandas 中尝试数据透视表函数,同时这样做

y["Out bin"]=y["30-40 Mins"]+y["40-50 Mins"]

所有列 ["30-40 Mins"] 和 ["40-50 Mins"] 都是计算字段,但如果原始数据(派生列)中不存在类别 y["40-50 Mins"] 则这样做相同的关键错误,我知道这是计算字段中不存在 bcz 类别

他们有什么方法可以解决这个问题,就好像该列不存在一样,它可以省略相同的内容并在数据透视表中添加列而不会出现任何错误

标签: pythonpandaspivot-tablecrosstab

解决方案


用于Index.intersection获取列名(如果存在),然后sum

vals = ['30-40 Mins', '40-50 Mins']
y["Out bin"] = y[y.columns.intersection(vals)].sum(axis=1)

推荐阅读