首页 > 解决方案 > 如何查找列表是否是数据框列中字符串的子字符串?

问题描述

我面临着从 DataFrame 列中的列表中查找子字符串的挑战

list =['ab', 'bc', 'ca']

DF1
Index|A
0    |ajbijio_ab_jadds
1    |bhjbj_ab_jiui

Expected OUTPUT:
DF
ab
ab

我写了一些东西,但它给出了错误 unhashable type: 'list'

DF1['A'].str.lower().str.contains(list)

标签: python-3.xpandasdataframe

解决方案


使用str.extract

前任:

import pandas as pd

lst =['ab','bc','ca']

df = pd.DataFrame({"A": ["ajbijio_ab_jadds", "bhjbj_ab_jiui", "Hello World"]})
df["Found"] = df["A"].str.extract("(" + "|".join(lst) + ")")
print(df)

输出:

                  A Found
0  ajbijio_ab_jadds    ab
1     bhjbj_ab_jiui    ab
2       Hello World   NaN

推荐阅读