【发布时间】:2021-11-04 14:01:11
【问题描述】:
我知道很容易检查熊猫系列中有多少缺失值。如果我想检查 Pandas 系列是否有 6+ 个连续缺失值条目怎么办?
【问题讨论】:
标签: pandas
我知道很容易检查熊猫系列中有多少缺失值。如果我想检查 Pandas 系列是否有 6+ 个连续缺失值条目怎么办?
【问题讨论】:
标签: pandas
mask = temp_df.loc[:,i].isna()
max_missing_val = temp_df.loc[:,i][mask].groupby((~mask).cumsum()[mask]).agg(['size'])
if len(max_missing_val) == 0:
max_missing_val = 0
else:
max_missing_val = max_missing_val.max()[0]
【讨论】:
您可以利用cumsum 创建连续的NaN值组:
s = pd.Series(
[np.nan, 1, 2, np.nan, np.nan, np.nan, 3, 4, np.nan, np.nan]*2
)
# create groups of continuous na/non na values
group = s.isna().ne(s.shift().isna()).cumsum()
# set threshold for minimum group size, here 3 instead of 6
threshold = 3
group_size = s.groupby(group).transform('size')
# check for rows with 3+ continous NaN values
print(s[(group % 2 == 0) & (group_size.ge(threshold))])
# output
3 NaN
4 NaN
5 NaN
8 NaN
9 NaN
10 NaN
13 NaN
14 NaN
15 NaN
【讨论】: