使用正则表达式删除熊猫数据框中的子字符串

Posted

技术标签:

【中文标题】使用正则表达式删除熊猫数据框中的子字符串【英文标题】:Deleting substrings in a panda dataframe using regular expressions 【发布时间】:2018-09-24 08:45:21 【问题描述】:

您好,我想在我的数据框中的多行和多列中从 date-and-time:city:endIndex:8,startIndex:0,value:Atlantic 中删除 endIndex:8,startIndex:0,value:

这是我的数据框中一行的示例。

 "_id" : ObjectId("5ad13551df70d8025b7811db"), "Article url" : "http://wreg.com/2015/08/02/mpd-officer-killed-in-the-line-of-duty-identified/",  "Full text" : "Blah blah", "Json" : "circumstances:number-of-shots-fired:endIndex:-1,startIndex:-1,value:,type-of-gun:endIndex:-1,startIndex:-1,value:,date-and-time:city:endIndex:7,startIndex:0,value:MEMPHIS,clock-time:endIndex:226,startIndex:218,value:9:15 p.m, victim-section:[age:endIndex:151,startIndex:148,value:33,,gender:Male,name:endIndex:146,startIndex:135,value:Sean Bolton,race:endIndex:-1,startIndex:-1,value:,victim-was:[killed]]", "Publication date" : "2015-08-03 10:24:27+00:00" 

如您所见,endIndex:,startIndex:,value: 显示在一堆具有不同值(有时没有值)的不同列中。 那么我该如何从

date-and-time:city:endIndex:7,startIndex:0,value:MEMPHIS

到我想要的输出

date-and-time:city:MEMPHIS

*我知道这个值没有意义,所以请忽略它。

到目前为止,我一直在考虑使用 pandas.DataFrame.replace 结合正则表达式来查找符合我的条件的子字符串。

new_df=old_df.replace('abcendIndex:X,startIndex:Y,value:ABC', '', regex=True)

abc、ABC 和 X、Y 等价的正则表达式是什么?他们可以是任何东西。

【问题讨论】:

【参考方案1】:

希望对您有所帮助。 :)

new_df=a.replace('endIndex:(.+),startIndex:(.+),value:', '', regex=True)

【讨论】:

你能回答我吗,你为什么不赞成我的回答。对我来说效果很好。

以上是关于使用正则表达式删除熊猫数据框中的子字符串的主要内容,如果未能解决你的问题,请参考以下文章

在熊猫数据框中使用正则表达式替换列值

从熊猫数据框中的地址中删除分数

使用正则表达式在 Pandas 数据框中字符串开头的大括号内去除数字

使用正则表达式从 pandas 数据框中提取元素

如何根据正则表达式从 pd 系列或数据框中删除行?

Python - 正则表达式将数据框中的一列拆分为 2 [重复]