查找标点符号后包含字符串的列名称

Find column name containing a string after a punctuation

我有一个与 Find column whose name contains a specific string 类似的问题,但有一个扩展。

我有一个包含列名的数据框,我想在下划线符号后找到包含特定字符串的数据框。

例如,我在 'mango_man'、'man_mango'、'apple_mango' 等列名称中搜索 mango,但仅当它出现在“_”之后时。这种情况下的结果只会 return 'man_mango', 'apple_mango'

要return编辑为字符串或变量的列名称。

你可以给出这个来查明列中是否存在 mango_ 或 _mango。

这将检查之前和之后。如果你想在之后明确检查,那么你可以给出 if '_mango' in col

df = pd.DataFrame(np.random.randint(0,10,(3,7)),
                columns = ['man','man_mango','mango_man','mango','mangoman','manmango','man mango'])
print (df)
mango_cols = [col for col in df.columns if any(x in col for x in ['mango_','_mango'])]
print (mango_cols)

这个输出将是:

['man_mango', 'mango_man']

要明确地只获取 _mango 之后的值,您可以给出:

cols = [col for col in df.columns if '_mango' in col]

这个输出将是:

['man_mango']

要获取数据框 df 中下划线 _ 后包含 mango 的结果列表,您可以执行

mango_list = [word for word in df.columns if '_mango' in word]

mango_list = [word for word in df.columns if word.split("_")[1]=="mango"]