使用类似regEx的switchcase向python DataFrame添加一个新列

2024-04-29 12:49:51 发布

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

我需要向pandas.DataFrame()追加一个新列,每行的结果都是不同regEx的开关大小写。 对于python,我发现现在有switch/case循环,所以我必须用if/elif/else来做。在

我的第一个方法(失败)是:

df = pd.DataFrame(data, columns=headers)
...
wrangle = wd()
df['groupe_canaux'] = wrangle.regex_canaux(df)

然后在我的辩论课上:

^{pr2}$

我要在最终版本中添加~20个正则表达式,检查最多4个不同的列值,以便在新列中添加好的字符串。在

这里我得到了一个错误:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

编辑:进一步搜索将我引向DataFrame.apply()。但我不知道如何使用它。在


Tags: columns方法dataframepandasdfdataifelse
1条回答
网友
1楼 · 发布于 2024-04-29 12:49:51

感谢这篇文章,我终于找到了如何使用df.apply()来实现它:How to apply a function to two columns of Pandas dataframe

数据\u到_数据框.py在

df = pd.DataFrame(data, columns=headers)
...
wrangle = wd()
df['groupe_canaux'] = df.apply(lambda x: wrangle.regex_canaux(x.medium), axis=1)

争吵_数据.py在

^{pr2}$

print(df.head())之后,我得到了:

        date          medium  sessions groupe_canaux
0 2019-02-25          (NONE)     11173        Direct
1 2019-02-25       (NOT SET)        12           BAR
2 2019-02-25  ABTESTING-HOME       126           FOO
3 2019-02-25       AFFILIATE         1           FOO
4 2019-02-25         ANNONCE         1           FOO

相关问题 更多 >