如何从熊猫数据框中删除小于一定长度的聚簇/非聚簇值?

时间:2019-02-03 20:41:52

标签: python pandas python-2.7

如果我有这样的熊猫数据框:

      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

1 个答案:

答案 0 :(得分: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