首页 > 解决方案 > 为指定的列范围计算所有行中的非 0 值 - Python Pandas

问题描述

为指定范围的列计算所有行中的非 0 值的最佳方法是什么?我在下面的失败尝试:

data = [[2015, 900, 2016, 850, 900, 850, 1000, 0, 0, -50, 50, -1000, 0], 
        [2016, 500, 2017, 550, 0, 500, 550, 350, 0, 500, 50, -200, -350], 
        [2017, 200, 2018, 300, 0, 0, 200, 300, 100, 0, 200, 100, -200], 
        [2018, 775, 2019, 1000, 0, 0, 0, 775, 1000, 0, 0, 775, 225], 
        [2019, 30, 2020, 0, 0, 0, 0, 0, 30, 0, 0, 0, 30]] 
data = pd.DataFrame(data, columns = ['cohortYear', 'firstYearSales', 'firstFullYear', 'firstFullYearSales', '2015','2016','2017', '2018', '2019', '2016 Delta', '2017 Delta', '2018 Delta', '2019 Delta'])

countRange = data.columns[5:9]

data['activeYears'] = data[countRange].count(axis=1)
data

标签: pythonpandasnumpy

解决方案


尝试:

data['activeYears'] = (data[countRange] > 0).sum(axis=1)


推荐阅读