gpt4 book ai didi

python - Pandas系列不区分大小写的匹配和值之间的部分匹配

转载 作者:行者123 更新时间:2023-11-30 22:34:00 41 4
gpt4 key购买 nike

我有以下操作来添加一个状态,显示一个数据帧列的列中的任何字符串出现在另一个数据帧的指定列中的位置。它看起来像这样:

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')

关于python - Pandas系列不区分大小写的匹配和值之间的部分匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44979927/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com