从列表中搜索数据框列中的部分字符串匹配-Pandas-Python

埃里克·科伊(Eric Coy)

我有一个清单:

things = ['A1','B2','C3']

我有一个熊猫数据框,其中的一列包含用分号分隔的值-有些行将包含与上面列表中的一项匹配的匹配项(这不是完美匹配,因为它具有字符串中的其他部分列。例如,该列中的行可能具有“哇;这里;此= A1 ; 10001; 0”)

我想保存包含与列表中的项目匹配的行,然后使用这些选定的行(应具有相同的标题)创建一个新的数据框。这是我尝试的:

import re

for_new_df =[]

for x in df['COLUMN']:
    for mp in things:
        if df[df['COLUMN'].str.contains(mp)]:
            for_new_df.append(mp)  #This won't save the whole row - help here too, please.

这段代码给了我一个错误:

ValueError:DataFrame的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。

我对编码非常陌生,因此答案中的解释和细节越多越好!提前致谢。

埃德·楚姆

您可以通过加入单词列表来创建正则表达式并使用来避免循环str.contains

pat = '|'.join(thing)
for_new_df = df[df['COLUMN'].str.contains(pat)]

应该工作

因此,正则表达式模式变为:'A1|B2|C3'它将与包含这些字符串中任何一个的字符串中的任何位置匹配

例子:

In [65]:
things = ['A1','B2','C3']
pat = '|'.join(things)
df = pd.DataFrame({'a':['Wow;Here;This=A1;10001;0', 'B2', 'asdasda', 'asdas']})
df[df['a'].str.contains(pat)]

Out[65]:
                          a
0  Wow;Here;This=A1;10001;0
1                        B2

至于失败的原因:

if df[df['COLUMN'].str.contains(mp)]

这行:

df[df['COLUMN'].str.contains(mp)]

返回一个由您的内部布尔数组掩盖的df str.containsif不了解如何计算布尔数组,因此会出错。如果您考虑一下,如果您选择1个True或除1个True之外的所有商品,应该怎么办?它期望一个标量而不是像value这样的数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从列表中搜索数据框列中的部分字符串匹配-Pandas-Python

来自分类Dev

从python pandas的dataframe列中搜索匹配的字符串模式

来自分类Dev

Python Pandas Regex:在列中搜索带有通配符的字符串并返回匹配项

来自分类Dev

Python Pandas:如何在列中搜索字符串?

来自分类Dev

Python Pandas:如果字符串值列表== [无],则从数据框中删除行

来自分类Dev

如何使用换行符读取字符串并将其存储到Pandas数据框或python列表中

来自分类Dev

Python 2.7:如何从pandas数据框中的字符串中识别唯一的字符串,并根据结果在指定的列中打印指定的值?

来自分类Dev

如何用Python Pandas中的另一个替换数据框列中的字符串?

来自分类Dev

在 Python 3 中使用 Pandas,如何过滤掉数据框中列中的重复字符串?

来自分类Dev

python:删除pandas数据框中包含字符串的所有行

来自分类Dev

Python Pandas-在数据框中查找子字符串,然后求和而无循环

来自分类Dev

Pandas / Python-合并键位于2个子字符串中的数据框

来自分类Dev

python:删除pandas数据框中包含字符串的所有行

来自分类Dev

使用基于部分字符串匹配的熊猫在python中过滤数据框

来自分类Dev

Python中的列表交集和部分字符串匹配

来自分类Dev

从 Pandas 数据框中的列标题中修剪部分字符串

来自分类Dev

如何基于多列中的字符串匹配在Pandas数据框中选择行

来自分类Dev

Python:Pandas数据框str替换为部分小写字符串

来自分类Dev

如何通过搜索列表中给定的关键字值在Python pandas数据框中添加新列?

来自分类Dev

python pandas-检查列中的部分字符串是否在其他列中存在

来自分类Dev

python pandas-检查列中的部分字符串是否在其他列中存在

来自分类Dev

Python pandas 数据框:在数组列中,如果第一个项目包含特定字符串,则从数组中删除该项目

来自分类Dev

pandas数据框中整个列的子字符串

来自分类Dev

如何在数据框中搜索部分字符串并使用 Pandas 返回特定单元格?

来自分类Dev

根据另一列(Python Pandas)的值在列中添加一部分字符串

来自分类Dev

Python-根据部分字符串匹配将数据行保留在数据框中

来自分类Dev

Python:在Pandas数据框中缩放列

来自分类Dev

搜索列中的字符串并通过在 Pandas 的数据框中添加另一列来提及该字符串

来自分类Dev

如何使用python pandas根据特定的(字符串)列对数据框进行排序?

Related 相关文章

  1. 1

    从列表中搜索数据框列中的部分字符串匹配-Pandas-Python

  2. 2

    从python pandas的dataframe列中搜索匹配的字符串模式

  3. 3

    Python Pandas Regex:在列中搜索带有通配符的字符串并返回匹配项

  4. 4

    Python Pandas:如何在列中搜索字符串?

  5. 5

    Python Pandas:如果字符串值列表== [无],则从数据框中删除行

  6. 6

    如何使用换行符读取字符串并将其存储到Pandas数据框或python列表中

  7. 7

    Python 2.7:如何从pandas数据框中的字符串中识别唯一的字符串,并根据结果在指定的列中打印指定的值?

  8. 8

    如何用Python Pandas中的另一个替换数据框列中的字符串?

  9. 9

    在 Python 3 中使用 Pandas,如何过滤掉数据框中列中的重复字符串?

  10. 10

    python:删除pandas数据框中包含字符串的所有行

  11. 11

    Python Pandas-在数据框中查找子字符串,然后求和而无循环

  12. 12

    Pandas / Python-合并键位于2个子字符串中的数据框

  13. 13

    python:删除pandas数据框中包含字符串的所有行

  14. 14

    使用基于部分字符串匹配的熊猫在python中过滤数据框

  15. 15

    Python中的列表交集和部分字符串匹配

  16. 16

    从 Pandas 数据框中的列标题中修剪部分字符串

  17. 17

    如何基于多列中的字符串匹配在Pandas数据框中选择行

  18. 18

    Python:Pandas数据框str替换为部分小写字符串

  19. 19

    如何通过搜索列表中给定的关键字值在Python pandas数据框中添加新列?

  20. 20

    python pandas-检查列中的部分字符串是否在其他列中存在

  21. 21

    python pandas-检查列中的部分字符串是否在其他列中存在

  22. 22

    Python pandas 数据框:在数组列中,如果第一个项目包含特定字符串,则从数组中删除该项目

  23. 23

    pandas数据框中整个列的子字符串

  24. 24

    如何在数据框中搜索部分字符串并使用 Pandas 返回特定单元格?

  25. 25

    根据另一列(Python Pandas)的值在列中添加一部分字符串

  26. 26

    Python-根据部分字符串匹配将数据行保留在数据框中

  27. 27

    Python:在Pandas数据框中缩放列

  28. 28

    搜索列中的字符串并通过在 Pandas 的数据框中添加另一列来提及该字符串

  29. 29

    如何使用python pandas根据特定的(字符串)列对数据框进行排序?

热门标签

归档