Pandas纵列判断?

我想实现是一个pandas dataframe的列内判断,请问怎么实现。

数据如下表:
我的数据是根据Protocol, start date和type排过序的。同一个protocol下,如果order列里面非0的值后面跟的是一个多或多个非0值,对这条非0记录加一个“YES”的flag,请问大神怎么实现?
image.png

阅读 2.2k
1 个回答

首先进行分组

grouped = df.groupby("protocol")

然后进行组内判断
这个可以百度

我这边提供一个思路,如果还不会的话,再问吧

import pandas as pd

a = pd.DataFrame()
a['A'] = [0,1,3,4,5,0,1,0,3,4,5,0,3]
a['D'] = ''
#%%

for i in a.index:
    if i < len(a)-1:
        if a['A'][i] != 0 and a['A'][i+1] != 0:
            a['D'][i] = 'yes'
    else:
        a['D'][i] = '最后一行'

结果

    A     D
0   0      
1   1   yes
2   3   yes
3   4   yes
4   5      
5   0      
6   1      
7   0      
8   3   yes
9   4   yes
10  5      
11  0      
12  3  最后一行
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题