当前位置: 首页 > 面试题库 >

从数据框中提取与列表进行比较的字符串

闻飞跃
2023-03-14
问题内容

我正在尝试从pandas数据帧中的DF中提取字符串,并且源字符串在必须与之匹配的列表中。我尝试使用adf.str.extract(list1)但我收到了无法哈希类型的错误,我想我将列表与DF比较的方式不正确

Col 1   Col 2
1       The date
2       Three has come
3       Mail Sent
4       Done Deal

Col 1   Col 2           Col 3 
1       The date        NaN
2       Three has come  Three has
3       Mail Sent        Mail
4       Done Deal        Done

我的清单如下

List1 = ['Three has' , 'Mail' , 'Done' , 'Game' , 'Time has come']

问题答案:

你可以用extractjoin在所有值List通过|什么手段orregex

List1 = ['Three has' , 'Mail' , 'Done' , 'Game' , 'Time has come']
df['Col 3'] = df['Col 2'].str.extract("(" + "|".join(List1) +")", expand=False)
print (df)
   Col 1           Col 2      Col 3
0      1        The date        NaN
1      2  Three has come  Three has
2      3       Mail Sent       Mail
3      4       Done Deal       Done

另一个解决方案:

List1 = ['Three has' , 'Mail' , 'Done' , 'Game' , 'Time has come']

df['Col 3'] = df['Col 2'].apply(lambda x: ''.join([L for L in List1 if L in x]))
df['Col 3'] = df['Col 3'].mask(df['Col 3'] == '')
print (df)
   Col 1           Col 2      Col 3
0      1        The date        NaN
1      2  Three has come  Three has
2      3       Mail Sent       Mail
3      4       Done Deal       Done


 类似资料:
  • 如何比较两个列表是否相等验证数据来自Excel工作表。我需要验证两个列表是否相同,并且列表中没有附加元素或缺少元素。我不需要对列表进行排序。打印输出CAGID Excel data=CAGID Web列表

  • 我有一个本地数据库,一个登录页面和一个servlet。我可以从数据库中获得我想要的值,例如用户名和密码。我还可以在html登录表单中获得用户输入。我对HTML使用Request.GetParameter。我想检查数据库中的用户名是否等于输入的用户名,以及数据库中的密码是否等于输入的密码,否则访问被拒绝。这是我的代码:

  • 我对OffsetDateTime的用法非常陌生,我正在尝试将OffsetDateTime字符串与OffsetDateTime进行比较。以这种方式在java中使用now(), 但我正在学习java。时间总体安排所有3种情况下的DateTimeParseException。 然而,如果我将2个OffsetDateTime字符串与CompareTo方法进行比较,它的工作就很好了。 有没有人能在这方面给我

  • 我正试图从一个联合集合中获取一个映射值,以与列表字符串进行比较。我一直有例外。 以下是我的疑问, 事实证明,在网上寻找任何JPA都是一项艰巨的任务。我找不到任何相同的东西。

  • 问题内容: 我是Java的新手:) 我有2个字符串列表,我想知道比较这两者的最有效方法是什么,并得到一个包含另一个字符串的结果数组。例如,我有一个名为oldStrings的列表和一个名为Strings的列表。我已经看过Comparator函数,但是还不完全了解它的工作原理,现在我想我可以创建一个for循环,遍历每个字符串,然后保存该字符串: 此列表中最多包含200个字符串。这是解决此问题的最佳方法

  • 以下代码的输出为假 我不明白。我想它会返回true。在我为SCJP做准备时,了解其背后的原因可能会有所帮助。有人能帮忙吗?