我有两个数据帧df1
和df2
df1
是一个具有各种列的数据框,df2
是一个只有一列的数据框col2
,这是一个单词列表
这显然是错误的,但到目前为止我的代码是:df1["col_new"] = df1[df1["col1"]].str.contains(df2["col2"])
基本上,我想在df1
中创建一个名为col_new
的新列,如果值与df1
中的col1
中的值部分匹配,则该列已从df2
中的col2
复制了值
例如,如果col2 = "apple"
和col1 = "im.apple3"
,那么我想将值"apple"
复制或赋值给col_new
,依此类推
另一个问题是在df1
中的col1
中查找字符串中第二个大写字母的索引/位置
我在这里发现了一个类似的问题,并编写了以下代码:df["sec_upper"] = df["col1"].apply(lambda x: re.research("[A-Z]+{2}",x).span())[1]
但是我得到一个错误,说“在位置6重复多次”
有人能帮我吗?提前谢谢你
编辑2:第一个问题解决了。有人能帮我解决第二个问题吗
编辑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
试试这个:
输出:
相关问题 更多 >
编程相关推荐