首页 > 解决方案 > 是否有一种基于另一列的值增加列值的pythonic方法?

问题描述

我想为一列分配增量值。但是,增量不是连续的,发生增量的行取决于另一列的值。

目前我正在为此使用一个 for 循环,这非常慢。我得到了我想要的结果,如下所示。你能建议一种更pythonic的方式来做到这一点吗?

a=1
for index, row in df.iterrows():
    df.loc[index,'trip_id'] = a
    if df.loc[index,'interim_tour_chk'] >= 0:
        a = a+1

我想要的结果

标签: pythonpandas

解决方案


你可以试试这个:

df['trip_id'] = (df['interim_tour_chk'] == 0).cumsum()

解释:

(df['interim_tour_chk'] == 0)将返回一个 pandas 系列的布尔值,判断每个 'interim_tour_chk' 是否等于 0。这里是pandas 的文档 cumsum


推荐阅读