在pandas dataframe中,可以使用apply方法结合lambda函数来对循环中的每个迭代使用不同的regex。
首先,需要导入pandas库并创建一个dataframe对象。假设我们有一个名为df的dataframe,其中包含一个名为column的列,我们想要对每个元素应用不同的正则表达式。
import pandas as pd
# 创建一个示例dataframe
df = pd.DataFrame({'column': ['abc123', 'def456', 'ghi789']})
# 定义一个包含不同正则表达式的字典
regex_dict = {'abc': r'\d+', 'def': r'\w+', 'ghi': r'\D+'}
# 使用apply方法和lambda函数对每个迭代应用不同的regex
df['column'] = df['column'].apply(lambda x: x if pd.isnull(x) else
next((v for k, v in regex_dict.items() if k in x), None))
# 打印结果
print(df)
输出结果如下:
column
0 \d+
1 \w+
2 \D+
在上述代码中,我们首先创建了一个包含不同正则表达式的字典regex_dict。然后,我们使用apply方法和lambda函数对dataframe的'column'列中的每个元素进行迭代。lambda函数首先检查元素是否为空,如果为空则保持不变。否则,它会在regex_dict中查找匹配元素中包含的关键字,并返回相应的正则表达式。如果没有找到匹配的关键字,则返回None。
这样,我们就可以在pandas dataframe中对循环中的每个迭代使用不同的regex。
领取专属 10元无门槛券
手把手带您无忧上云