如何比大熊猫数据框中一定长度删除集群/非集群值少了?

问题描述 投票:0回答:1

如果我有一个这样的熊猫数据帧:

      A
 1    1
 2    1
 3   NaN
 4    1
 5   NaN
 6    1
 7    1
 8    1
 9    1
 10  NaN
 11   1
 12   1
 13   1

如何去除聚集在一个长度小于某一值(在这种情况下是四个)例如值?这样,我得到一个这样的数组:

      A
 1   NaN
 2   NaN
 3   NaN
 4   NaN
 5   NaN
 6    1
 7    1
 8    1
 9    1
 10  NaN
 11  NaN
 12  NaN
 13  NaN
python pandas python-2.7
1个回答
1
投票

使用groupbynp.where

s = df.groupby(df.A.isnull().cumsum()).transform(lambda s: pd.notnull(s).sum())
df['B'] = np.where(s.A>=4, df.A, np.nan)

输出

    A   B
1   1.0 NaN
2   1.0 NaN
3   NaN NaN
4   1.0 NaN
5   NaN NaN
6   1.0 1.0
7   1.0 1.0
8   1.0 1.0
9   1.0 1.0
10  NaN NaN
11  1.0 NaN
12  1.0 NaN
13  1.0 NaN
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.