Python 如果是列';s字符串值包含特定的模式

Python 如果是列';s字符串值包含特定的模式,python,regex,pandas,dataframe,pattern-matching,Python,Regex,Pandas,Dataframe,Pattern Matching,我有以下数据框,列“Name”的值中有一个模式“//” data = [['a1','yahoo', 'apple'], ['a2','gma///il', 'mango'], ['a3','amazon', 'papaya'], ['a4','bi///ng', 'guava']] df = pd.DataFrame(data, columns = ['ID', 'Name', 'Info']) 如果列“Name”的值中包含模式“//”,则需要从该数据帧中提取整行。我尝试了以下代码,但

我有以下数据框,列“Name”的值中有一个模式“//”

data = [['a1','yahoo', 'apple'], ['a2','gma///il', 'mango'], ['a3','amazon', 'papaya'], 
['a4','bi///ng', 'guava']] 
df = pd.DataFrame(data, columns = ['ID', 'Name', 'Info']) 
如果列“Name”的值中包含模式“//”,则需要从该数据帧中提取整行。我尝试了以下代码,但得到了一个空的数据帧

new_df = df.loc[df['Name'] == '///']
我的预期输出应提供如下数据帧:

data_new = [['a2','gma///il', 'mango'],['a4','bi///ng', 'guava']] 
new_df = pd.DataFrame(data, columns = ['ID', 'Name', 'Info'])  
print(new_df)

使用
Series.str.contains

import pandas as pd

data = [['a1','yahoo', 'apple'], ['a2','gma///il', 'mango'],
        ['a3','amazon', 'papaya'],['a4','bi///ng', 'guava']]

df = pd.DataFrame(data, columns = ['ID', 'Name', 'Info'])

print (df[df["Name"].str.contains("///")])

#
   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava

使用
Series.str.contains

import pandas as pd

data = [['a1','yahoo', 'apple'], ['a2','gma///il', 'mango'],
        ['a3','amazon', 'papaya'],['a4','bi///ng', 'guava']]

df = pd.DataFrame(data, columns = ['ID', 'Name', 'Info'])

print (df[df["Name"].str.contains("///")])

#
   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava

如果您想在一列上过滤,请使用此解决方案

将numpy导入为np
输入熊猫作为pd
数据=['a1'、'yahoo'、'apple']、['a2'、'gma///il'、'mango']、['a3'、'amazon'、'papaya'],
['a4','bi///ng','guava']]
df=pd.DataFrame(数据,列=['ID','Name','Info'])
mask=np.column\u堆栈([df['Name'].str.contains(r“\//”,na=False)])
df.loc[屏蔽任何(轴=1)]
输出:

   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava
   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava
如果需要对某些模式的所有列进行筛选,请参阅下面的解决方案

将numpy导入为np
mask=np.column\u堆栈([df[col].str.contains(r“\//”,na=False),用于df中的col])
df.loc[屏蔽任何(轴=1)]
输出:

   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava
   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava

如果您想在一列上过滤,请使用此解决方案

将numpy导入为np
输入熊猫作为pd
数据=['a1'、'yahoo'、'apple']、['a2'、'gma///il'、'mango']、['a3'、'amazon'、'papaya'],
['a4','bi///ng','guava']]
df=pd.DataFrame(数据,列=['ID','Name','Info'])
mask=np.column\u堆栈([df['Name'].str.contains(r“\//”,na=False)])
df.loc[屏蔽任何(轴=1)]
输出:

   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava
   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava
如果需要对某些模式的所有列进行筛选,请参阅下面的解决方案

将numpy导入为np
mask=np.column\u堆栈([df[col].str.contains(r“\//”,na=False),用于df中的col])
df.loc[屏蔽任何(轴=1)]
输出:

   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava
   ID      Name   Info
1  a2  gma///il  mango
3  a4   bi///ng  guava

DataFrame
具有字符串函数
contains()

 new_df = df[ df['Name'].str.contains('///') ]

DataFrame
具有字符串函数
contains()

 new_df = df[ df['Name'].str.contains('///') ]

new_df=df[df['Name'].str.contains('///')]
new_df=df[df['Name'].str.contains('//')]