如何在mutate dplython中使用regex添加新列

2024-10-03 06:19:17 发布

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

熟悉R和dplyr之后,我试图用dplython和pandas来完成python中的一项任务。你知道吗

我试图在dataframe中创建一个新列,该列使用regex计算一个列,在模式匹配时,我给value=1或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:应为字符串或字节,如object

`预期输出

module_name module_tpye to_select 0 eventOutput export 1 1 session export 0

感谢: 对Python寄予厚望的家伙


Tags: nameimportrepandasdfnewsessionas
1条回答
网友
1楼 · 发布于 2024-10-03 06:19:17

这里有一个不使用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"]]

相关问题 更多 >