我有两个数据框df1
和df2
. df1
是一个具有各种列的数据框,并且df2
是一个只有一列的数据框col2
,它是一个单词列表。
这显然是错误的,但到目前为止我的代码是:df1["col_new"] = df1[df1["col1"]].str.contains(df2["col2"])
基本上,我想创建一个名为col_new
in的新列,如果值与 in中的值部分匹配,则该列df1
已从col2
in复制值。df2
col1
df1
例如,如果col2 = "apple"
and col1 = "im.apple3"
,那么我想将值复制或分配给"apple"
等等col_new
。
我的另一个问题是在 in 中的字符串中找到第二个大写字母的索引/col1
位置df1
。
我在这里发现了一个类似的问题并编写了这段代码:df["sec_upper"] = df["col1"].apply(lambda x: re.research("[A-Z]+{2}",x).span())[1]
但我收到一条错误消息,提示“在位置 6 多次重复”。
有人可以帮我吗?先感谢您!
EDIT2:第一个问题解决了。谁能帮我解决第二个问题?
编辑1:
示例数据框:
df1
col1
im.apple3
Cookiemm
Hi_World123
df2
col2
apple
cookie
world
candy
soda
预期输出:
col1 new_col sec_upper
im.apple3 apple NaN
Cookiemm cookie NaN
Hi_World123 world 4