Python中如何为DataFrame新增列A,按列B连续5个空值规则分配标记
代码实现(基于Pandas)
首先提前安装pandas依赖,执行pip install pandas即可。
完整示例代码
import pandas as pd import numpy as np # 构造测试DataFrame,可替换为自有数据源 df = pd.DataFrame({ 'B': [1,2,np.nan,np.nan,np.nan,np.nan,np.nan,3,np.nan,np.nan,np.nan,np.nan,4] }) # 核心处理逻辑 # 1. 识别空值并对连续空值做分组 null_group = df['B'].notna().cumsum() # 2. 统计每个分组的连续空值长度 consecutive_null_len = df.groupby(null_group)['B'].transform(lambda x: x.isna().sum()) # 3. 按规则给新列A分配标记 df['A'] = np.where(consecutive_null_len >= 5, 'text-1', 'text-2') print(df)
注意事项
- 如果你的数据中
B列的空值是空字符串''而非NaN,需要先执行替换操作:df['B'] = df['B'].replace('', np.nan)再运行后续逻辑 - 核心分组逻辑
df['B'].notna().cumsum()会给每一段连续空值分配相同的分组编号,统计完分组长度后即可快速判断是否满足连续5个空值的判定条件
内容的提问来源于stack exchange,提问作者MD SAJID
相关产品推荐
相关产品推荐

