gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:02:32 24 4
gpt4 key购买 nike

由于熟悉 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com