首页 > 解决方案 > 根据python中另一列的条件增加一列

问题描述

我有一个数据框,我想根据不同列“col”的条件创建一个新列名“new”。创建新列名“new”,并在它在“col”中找到任何值时对其进行计数。

感谢您的回答,我是 Python 新手,所以我不知道该怎么做

  index      col        
    1     2.11.67       
    2       NaN        
    3       NaN        
    4     5.10.56      
    5       NaN        
    6     2.10.67      
    7       NaN        
    8     2.09.67      

应该导致: -

 index      col        new
    1     2.11.67       1
    2       NaN        NaN
    3       NaN        NaN
    4     5.10.56       2
    5       NaN        NaN
    6     2.10.67       3
    7       NaN        NaN
    8     2.09.67       4

标签: pythonpython-3.xpandas

解决方案


您可以使用notnacumsum和的组合where

mask = df['col'].notna()
df['new'] = mask.cumsum().where(mask)

输出:

           col  new
index              
1      2.11.67  1.0
2          NaN  NaN
3          NaN  NaN
4      5.10.56  2.0
5          NaN  NaN
6      2.10.67  3.0
7          NaN  NaN
8      2.09.67  4.0

推荐阅读