如何在python3.x的不同列中基于Regex match更新另一列?

2024-09-28 01:31:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列,比如说a带有字符串,另一个列B带有二进制值1/0。 我正在尝试匹配a列中的正则表达式,并相应地更新B列

如果这是我的正则表达式

pattern_1 = re.compile(r'\bstudent', re.IGNORECASE)

我想把桌子改成下面的样子

A                    B
I am a teacher       0
I am a student       1
Student group        1

Tags: 字符串re二进制groupamstudentpatterncompile
2条回答

您可以使用pandas创建dataframe,并通过检查每行数据来创建新列:

import pandas as pd
import re
pattern_1 = re.compile(r'\bstudent', re.IGNORECASE)
data = [['I am a teacher',0],['I am a student ',0],['Student group', 0]]

df = pd.DataFrame(data, columns =['A','B']) 
print("orginal df:",df)
df['B'] = df.apply(lambda row: 1 if pattern_1.search(row.A) else row.B , axis=1)
print("\n\nmodified df:",df)

输出:

orginal df:                  A  B
0               I am a teacher  0
1              I am a student   0
2                Student group  0

modified df:                  A  B
0                I am a teacher  0
1               I am a student   1
2                 Student group  1

您没有指定列的存储方式,但这听起来像是带有枚举的基本for循环的作业。 假设A和B是列表:

for i, a_value in enumerate(A):
  B[i] = bool(pattern_1.search(A))

相关问题 更多 >

    热门问题