基于Numpy和Pandas的求dataframe某一列元素连续重复的次数:一个小trick

问题:df是一个dataframe,其a列df['a'] = [1,1,1,...,-1,-1,-1,...,0,0,0,...,1,1,1]的多个连续重复元素组成如x1个1,x2个0,x3个-1,x4个1,....。当前想要获得一个list,list中每个元素对应连续重复次数[x1,x2,x3,x4,...,xn]。

import pandas as pd
import numpy as np

### 前面已经定义好了df,且df['a']中不包括nan值,否则用df['a'].dropna()替换df['a']
b = np.where(df['a'] != df['a'].shift(1))
np.diff(b)[0]


版权声明:本文为feihua1475原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。