使用正则表达式/搜索查找字符串并隔离列

时间:2017-07-06 19:07:35

标签: python regex python-3.x pandas

您好,我想要实现的是在我的csv文件中找到该列(转换为数据帧),其中包含单词' outbound'并隔离该列以及它旁边的两列。到目前为止,我已经尝试了以下代码片段无济于事。

    mask = np.column_stack([NB_2c17_newburden[col].str.contains(r"outbound", na=False) for col in NB_2c17_newburden])

以及使用搜索

    for line in NB_2c17_newburden:
       if re.search('outbound', line):
         print (line)

我只是使用打印线来查看它是否可行。任何帮助将不胜感激。

在R中,它已通过以下代码实现:

  i <- grep('outbound',NB_2c17_newburden)
  i <- i:(i+2)

但我不知道如何将其转换为python

1 个答案:

答案 0 :(得分:1)

df=pd.DataFrame({"col1":["one","two","three"],"col2":["four","five","six"],"col3":["seven","outbound","nine"],"col4":["ten","eleven","twelve"]})

for i in range(len(df.columns)):
    if pd.Series.any(df.iloc[:,i].str.contains(pat="outbound")):
        new_list=pd.DataFrame({df.columns[i-1]:df.iloc[:,i-1],df.columns[i]:df.iloc[:,i],df.columns[i+1]:df.iloc[:,i+1]})

print(new_list)

  col2      col3    col4
0  four     seven     ten
1  five  outbound  eleven
2   six      nine  twelve