【发布时间】:2018-12-09 23:08:25
【问题描述】:
我有一个看起来像这样的 pandas 数据框:
COL
hi A/P_90890 how A/P_True A/P_/93290 are AP_wueiwo A/P_|iwoeu you A/P_?9028k ?
...
Im fine, what A/P_49 A/P_0.0309 about you?
预期的结果应该是:
COL
hi how are you?
...
Im fine, what about you?
如何有效地从列和完整的 pandas 数据框中删除所有具有 A/P_ 的字符串?
我试过这个正则表达式:
A/P_(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+
但是,我不知道是否有更简单或更强大的方法可以从我的数据框中删除所有这些子字符串。如何删除所有以A/P_开头的字符串?
更新
我试过了:
df_sess['COL'] = df_sess['COL'].str.replace(r'A/P(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', '')
而且它有效,但是我想知道是否有更强大的方法来做到这一点。可能使用正则表达式。
【问题讨论】:
-
您想删除
A/P_1并保留字符串的其余部分是吗? -
不,我想删除完整的字符串...换句话说,我想删除所有具有
A/P_的字符串,并保留干净的@Abhishek -
所以你想删除任何列有
A/P_的整行? -
发布一个可测试的数据框(有几列和几行)和预期结果
标签: python regex python-3.x pandas