pandas 循环表明所有行都有"|' [副本]

h6my8fg2  于 4个月前  发布在  其他
关注(0)|答案(1)|浏览(29)

此问题在此处已有答案

What special characters must be escaped in regular expressions?(13个回答)
Reference - What does this regex mean?(1个回答)
16天前关闭.

import pandas as pd
import numpy as np
import re

df_test = pd.DataFrame(np.array([['a|b', 'b', 'c|r'], [ 'e', 'f', 'g']]), columns=['First', 'Second', 'Third'])

for elem in df_test.get('First'):
    x = bool(re.search('|', elem))
    if x == True:
        print(elem)

输出量:

a|b
e


为什么会这样显示呢?认为只有第一行才能输出,不是吗?

euoag5mw

euoag5mw1#

代码中的问题在于正则表达式模式以及它如何与re.search函数交互。在正则表达式中,竖线|是表示OR运算符的特殊字符。因此,当您使用re.search('|', elem)时,它实际上是在输入元素中搜索空字符串或任何字符。因此,您需要使用反斜杠\对竖线进行转义,因为您希望匹配文字字符|

import pandas as pd
import numpy as np
import re

df_test = pd.DataFrame(np.array([['a|b', 'b', 'c|r'], ['e', 'f', 'g']]), columns=['First', 'Second', 'Third'])

for elem in df_test.get('First'):
    x = bool(re.search('\|', elem))
    if x == True:
        print(elem)

字符串

相关问题