熊猫根据条件创建新列

时间:2020-08-26 19:04:46

标签: python regex pandas dataframe partial-matches

我有两个数据帧df1df2df1是具有多个列的数据帧,df2是仅具有一列col2的数据帧,该列是单词列表。

这显然是错误的,但是到目前为止我的代码是:df1["col_new"] = df1[df1["col1"]].str.contains(df2["col2"])

基本上,我想在col_new中创建一个名为df1的新列,如果该值与col2中的{{1} df2中的{1}}。

例如,如果col1df1,那么我想将值col2 = "apple"复制或分配给col1 = "im.apple3",依此类推。

我要解决的另一个问题是在"apple"的{​​{1}}中的字符串中找到第二个大写字母的索引/位置。

我在这里发现了一个类似的问题,并编写了以下代码:col_new,但我收到一条错误消息,说“在位置6重复多次”。

有人可以帮我吗?预先谢谢你!

EDIT2:第一个问题已解决。有人可以帮我解决第二个问题吗?

EDIT1:

示例数据框:

col1

预期输出:

df1

1 个答案:

答案 0 :(得分:0)

尝试一下:

df1['new_col'] = df1['col1'].str.lower().str.extract(f"({'|'.join(df2['col2'])})")

输出:

          col1 new_col
0    im.apple3   apple
1     Cookiemm  cookie
2  Hi_World123   world