Python:根据特定条件删除单元格的内容

时间:2018-10-31 11:47:59

标签: python pandas

我有一个* .xlsx文件,如下所示-

           A                              B                        C
                                   [['Neutral']]                ['nan']
                                   [['Neutral']]                ['nan']
          Bad                      [['Negative']]               ['Bad']
          Meh                      [['Neutral']]                ['Meh']
                                   [['Neutral']]                ['nan']

仅在值[['Neutral']] and ['nan']B的情况下,我才尝试删除列Cnull中的所有df1 = pd.read_excel(path) for i, row in df1.iterrows(): if pd.isnull(row[0]): # del row[1] # del row[2] row[1] = 0 row[2] = 0 值。

这是我的代码-

B

我的代码可以完美地找到所有空值,但无法清除C A B C Bad [['Negative']] ['Bad'] Meh [['Neutral']] ['Meh'] 列变量s。我在做什么错了?

预期输出为-

HOOK-ERROR in after_step: TimeoutException: Message: timeout
(Session info: chrome=69.0.3497.92)
(Driver info: chromedriver=2.35.528139 
(47ead77cb35ad2a9a83248b292151462a66cd881),platform=Linux 4.4.0-128-generic x86_64)

是的,空格/单元格应该仍然存在。

2 个答案:

答案 0 :(得分:2)

尝试一下

mask=df['A'].isnull()
df.loc[mask]=''

输出:

     A               B        C
0                              
1                              
2  Bad  [['Negative']]  ['Bad']
3  Meh   [['Neutral']]  ['Meh']
4                              

对于这个问题,您不需要在熊猫中使用for循环,

说明

  1. 查找A哪里空白的索引

  2. 在所选索引处替换为空

编辑:

要从特定列中删除,

df.loc[mask,['B','C']]=''

答案 1 :(得分:1)

您可以简单地通过获取空值索引来分配它

df.loc[df.A.isnull()] = ''

出局:

        A   B   C
0           
1           
2   Bad [['Negative']]  ['Bad']
3   Meh [['Neutral']]   ['Meh']
4