我有以下操作来添加状态,显示一个数据帧列的列中的任何字符串出现在另一个数据帧的指定列中的位置。它看起来像这样:
df_one['Status'] = np.where(df_one.A.isin(df_two.A), 'Matched','Unmatched')
如果字符串大小写不同,则不会匹配。是否可以在不区分大小写的情况下执行此操作?
另外,当值在时是否可以返回“匹配”df_one.A以完整字符串结尾df_two.A?例如df_one.A abcdefghijkl -> df_two.A ijkl = '匹配'
您可以通过将表达式内的两个字符串转换为小写或大写(都有效)来进行第一个测试(因为您没有将任一列重新分配回 DataFrame,因此大小写转换只是临时的):
df_one['Status'] = np.where(df_one.A.str.lower().isin(df_two.A.str.lower()), \
'Matched', 'Unmatched')
您可以通过检查 df_one.A 中的每个字符串是否以 df_two.A 中的任何字符串结尾来执行第二个测试,如下所示(假设您仍然想要不区分大小写的匹配):
df_one['Endswith_Status'] = np.where(df_one.A.str.lower().apply( \
lambda x: any(x.endswith(i) for i in df_two.A.str.lower())), \
'Matched', 'Unmatched')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)