在 Pandas 中的特定列上应用正则表达式

伊尔法努拉

我有一个包含 tweetID、tweet-text、RegExp1、RegExp2、RegExp3、RegExp4 和 4 个正则表达式列表的数据集。我想在 tweet-text 列上一一应用正则表达式,如果 tweet-text 满足正则表达式,那么我想在相应的 RegExp 列中将值设置为 1,如果不满足则将其设置为 0 .

例如,假设tweet-text满足正则表达式编号1,那么我想将对应的RegExp1列的值设置为1,不满足正则表达式2则我想将对应的RegExp2列的值设置为0等等。我尝试了最后给出的代码,但它对我不起作用。

我的数据集看起来像

tweetID | tweet-text         | RegExp1 | RexExp2 | RegExp3 | RexExp4
---------------------------------------------------------------------
10001   | to get it or?      |         |         |         |
10333   | I just wonder :)   |         |         |         |
10933   | is it possible dude|         |         |         |
14633   | he is good at      |         |         |         |

代码:

 `regexes = [
    re.compile('i asked .* said'),
    re.compile('you asked me what .*'),
    re.compile('(to get|to see|to look|is it true|is it possible) .*'),
    re.compile('I .* wonder .*')
]
for regex, i in zip(regexes, range(4)):
    columnName = "RegExp"+str(i+1)
    for row in df['tweet-text']:
      if(regex.search(row) != None):
        df[columnName] = 1
      else:
        df[columnName] = 0`

(使用熊猫将是首选)谢谢

cs95

您可以str.contains在循环内使用。您需要传递正则表达式模式(不是编译的正则表达式对象)。

这就是我的开始:

In [1062]: df.head()
Out[1062]: 
   tweetID            tweet-text    RegExp1    RegExp2    RegExp3 RegExp4
0    10001   to get it or?                                               
1    10333   I just wonder :)                                            
2    10933   is it possible dude                                         
3    14633   he is good at 

In [1063]: regexes = [
      ...:     'i asked .* said',
      ...:     'you asked me what .*',
      ...:     '(?:to get|to see|to look|is it true|is it possible) .*',
      ...:     'I .* wonder .*'
      ...: ]

接下来,为每个正则表达式模式运行一个循环。str.contains依次调用并将结果分配给每一列:

In [1090]: for i, r in enumerate(regexes):
      ...:     df['RegExp%d' %(i + 1)] = df['tweet-text'].str.contains(r).astype(int)
      ...:     

In [1091]: df.head()
Out[1091]: 
   tweetID            tweet-text  RegExp1  RegExp2  RegExp3  RegExp4
0    10001   to get it or?              0        0        1        0
1    10333   I just wonder :)           0        0        0        1
2    10933   is it possible dude        0        0        1        0
3    14633   he is good at              0        0        0        0

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以选择特定的正则表达式捕获组以在Pandas中创建列?

来自分类Dev

python/pandas:使用正则表达式删除列中以特定内容开头的数据

来自分类Dev

匹配python pandas元组中的正则表达式

来自分类Dev

如何将正则表达式应用于 Pandas 中的列以查找值,然后对其应用函数?

来自分类Dev

根据使用正则表达式获得的匹配结果,替换另一列上的值(Python Pandas)

来自分类Dev

Python Pandas:通过应用正则表达式过滤数据框

来自分类Dev

将正则表达式格式应用于术语列表以与pandas列匹配

来自分类Dev

Pandas.str.replace 正则表达式应用程序

来自分类Dev

从正则表达式字典创建pandas列

来自分类Dev

正则表达式Sub和Pandas

来自分类Dev

使用正则表达式将数据提取到Pandas中的不同列

来自分类Dev

在Pandas DataFrame中,如何做正则表达式替换字符串列的值

来自分类Dev

为什么使用正则表达式的str.match在Pandas中不起作用

来自分类Dev

使用正则表达式从pandas数据框中的列中提取数据

来自分类Dev

如果找到模式,则使用正则表达式在pandas列中插入字符串

来自分类Dev

如何在Pandas中使用正则表达式提取月份中的某天?

来自分类Dev

Pandas DataFrame中的正则表达式-查找字符之间的最小长度

来自分类Dev

在 iteritem 中的每个项目的 Pandas 数据帧上应用正则表达式并仅返回第一部分

来自分类Dev

用正则表达式和Pandas重命名列以提取特定标点之间的内容

来自分类Dev

使用正则表达式在Pandas数据帧中字符串开头的花括号中剥离数字

来自分类Dev

使用正则表达式将pandas列值与文本文件中的单词进行比较

来自分类Dev

为pandas数据帧python中的循环中的每次迭代使用不同的正则表达式

来自分类Dev

如果值不包含字符串,则用正则表达式替换 Pandas Dataframe 中的值

来自分类Dev

python pandas使用带有正则表达式的map

来自分类Dev

用正则表达式替换引号,逗号和撇号-python / pandas

来自分类Dev

合并与正则表达式模式匹配的数据框列表-Pandas

来自分类Dev

仅打印与正则表达式Pandas匹配的字符串部分

来自分类Dev

使用正则表达式后,Pandas .loc无法正常工作?

来自分类Dev

在PANDAS中进行正则表达式搜索以滤除零吗?

Related 相关文章

  1. 1

    是否可以选择特定的正则表达式捕获组以在Pandas中创建列?

  2. 2

    python/pandas:使用正则表达式删除列中以特定内容开头的数据

  3. 3

    匹配python pandas元组中的正则表达式

  4. 4

    如何将正则表达式应用于 Pandas 中的列以查找值,然后对其应用函数?

  5. 5

    根据使用正则表达式获得的匹配结果,替换另一列上的值(Python Pandas)

  6. 6

    Python Pandas:通过应用正则表达式过滤数据框

  7. 7

    将正则表达式格式应用于术语列表以与pandas列匹配

  8. 8

    Pandas.str.replace 正则表达式应用程序

  9. 9

    从正则表达式字典创建pandas列

  10. 10

    正则表达式Sub和Pandas

  11. 11

    使用正则表达式将数据提取到Pandas中的不同列

  12. 12

    在Pandas DataFrame中,如何做正则表达式替换字符串列的值

  13. 13

    为什么使用正则表达式的str.match在Pandas中不起作用

  14. 14

    使用正则表达式从pandas数据框中的列中提取数据

  15. 15

    如果找到模式,则使用正则表达式在pandas列中插入字符串

  16. 16

    如何在Pandas中使用正则表达式提取月份中的某天?

  17. 17

    Pandas DataFrame中的正则表达式-查找字符之间的最小长度

  18. 18

    在 iteritem 中的每个项目的 Pandas 数据帧上应用正则表达式并仅返回第一部分

  19. 19

    用正则表达式和Pandas重命名列以提取特定标点之间的内容

  20. 20

    使用正则表达式在Pandas数据帧中字符串开头的花括号中剥离数字

  21. 21

    使用正则表达式将pandas列值与文本文件中的单词进行比较

  22. 22

    为pandas数据帧python中的循环中的每次迭代使用不同的正则表达式

  23. 23

    如果值不包含字符串,则用正则表达式替换 Pandas Dataframe 中的值

  24. 24

    python pandas使用带有正则表达式的map

  25. 25

    用正则表达式替换引号,逗号和撇号-python / pandas

  26. 26

    合并与正则表达式模式匹配的数据框列表-Pandas

  27. 27

    仅打印与正则表达式Pandas匹配的字符串部分

  28. 28

    使用正则表达式后,Pandas .loc无法正常工作?

  29. 29

    在PANDAS中进行正则表达式搜索以滤除零吗?

热门标签

归档