由于熟悉 R 和 dplyr,我尝试使用 dplython
和 pandas
在 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/