根据多个条件从数据框中删除字符串

时间:2018-01-06 04:05:57

标签: python regex pandas

我有一个2列的数据框。我需要在多个条件下删除单词。

  1. 如果Text列中的字符串长度等于1
  2. 如果Text对应的Associated_word列有空白
  3. 如果“文本”列仅包含数字
  4. ,则从数据框中删除行

    输入

    Text             Associated_word
    
    Corperation      Corp., Coperate
    f                flat,flt,flaat
    100              200,30,40
    block
    24fl             24floor,25fl,36fl
    central          centre, cent
    20               30,40
    

    输出

    Text             Associated_word
    Corperation      Corp., Coperat
    24fl             24floor,25fl,36fl
    central          centre, cent
    

    我的代码

    df= df[~df['Associated_word'].isnull()] 
    df['Text']= (df['Text'].str.len() == 1)
    

1 个答案:

答案 0 :(得分:0)

你正在寻找的是你所有条件的构成,有点逻辑或。您可以使用numpy.logical_or.reduce

来实现此目的
import numpy as np
conditions = [
    df['Associated_word'].isnull(),
    df['Text'].isnumeric(),
    df['Text'].str.len() == 1
]
df = df[np.logical_or.reduce(conditions)]