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

时间:2018-04-13 23:24:46

标签: python regex pandas dataframe substring

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

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

{ "_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('abc{endIndex:X,startIndex:Y,value:ABC', '', regex=True)

abc,ABC和X,Y的等效正则表达式是什么?它们可以是什么。

1 个答案:

答案 0 :(得分:1)

希望它有所帮助。 :)

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