基于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] # 所得为[x1,x2,...,xn-1]
# 计算 xn
len(df) - sum(np.diff(b)[0])

你可能感兴趣的:(pandas,numpy,python)