首页 > 解决方案 > 如果 col 为空字符串,则将相邻列也设为空

问题描述

考虑这个样本df:

colAnum    colB   colCnum    colD
123        House  456        Book
           Car    789        Table
891        Chair             Porch

我正在尝试滚动此 df,如果“num”列是空字符串,则将右侧的相邻列也设为空。

这是预期的输出:

colAnum    colB   colCnum    colD
123        House  456        Book
                  789        Table
891        Chair             

我对此进行了尝试:

for idx, col in enumerate(df.columns):
    if df.iloc[idx, col] == '':
       df[idx+1,col] == ''

我确信我错过了一些简单的东西来实现这一点,但无法解决它。

标签: pythonpandas

解决方案


尝试shiftmask

out = df.mask(df.eq('').shift(axis=1).fillna(False),'')
  colAnum   colB colCnum   colD
0   123.0  House   456.0   Book
1                  789.0  Table
2   891.0  Chair               

推荐阅读