python - 如何在 mutate dplython 中使用正则表达式添加新列

标签 python pandas

由于熟悉 R 和 dplyr,我尝试使用 dplythonpandas 在 python 中完成一项任务。

我正在尝试在数据框中创建一个新列,它使用正则表达式评估列,并且在模式匹配时我给出 value = 1 else 0。

import dplython as dp 
import pandas as pd 
import re

a = {'module_name':'eventOutput','module_tpye':'export'}
b = {'module_name':'session','module_tpye':'export'}
df = pd.DataFrame()
master_data = (a,b)
new_df = df.from_dict(master_data)
dp_new_df = dp.DplyFrame(new_df)
dp_new_df = dp_new_df >> dp.mutate(
  to_select=(
    1 
    if bool(re.match(r"(.*)Output(.*)",dp.X.module_name)) 
    else 0
  )
)

获取错误为TypeError:预期字符串或类似字节的对象

预期输出:

module_name  module_tpye    to_select
0  eventOutput      export          1
1      session      export          0

感谢来自: 对 python 寄予厚望的家伙

最佳答案

这是一个不使用我不熟悉的 dplython 的解决方案

import pandas as pd
import re

a={'module_name':'eventOutput','module_tpye':'export'}
b={'module_name':'session','module_tpye':'export'}
df = pd.DataFrame()
master_data = (a,b)
new_df = df.from_dict(master_data)
new_df["to_select"] = [bool(re.match(r"(.*)Output(.*)",x)) for x in new_df["module_name"]]

关于python - 如何在 mutate dplython 中使用正则表达式添加新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55662610/

相关文章:

python - 为什么这个 Python 脚本在多核上的运行速度比在单核上慢 4 倍

python - 如何在不输入 "python"的情况下在 shell 中运行 python 程序

python - 从列表中存在的数据帧列中的字符串中提取前缀

python - 对 pandas 列的值求和并删除重复的值

python - 检查一个数据集的行是否也在另一个数据集中并提取索引

python - 了解 keras model.predict

python - Python 中的多行注释

python - 使用python检测错误的字符编码

python - 如何使用 pandas python 合并数据帧?

python - Pandas : saving Series of dictionaries to disk