在Python Pandas中使用数据帧的字符串方法?

时间:2015-02-22 04:16:10

标签: python regex string pandas

我的数据框格式如下。

data.description[4000]=['Conduit, PVC Utility Type DB 60 TC-6, 1-1/2"                                   LF   .050   $.86   $1.90   $2.76']

字符串大小不一,但是我希望在“LF”子字符串处拆分字符串。 期望的输出将是

data2=['Conduit, PVC Utility Type DB 60 TC-6,1 -1/2"','LF',.050,'$.86','$1.90','$2.76]

如果我有一个单位清单

units=['CLF','LF','EA']

我如何搜索数据帧字符串并以上述格式中断字符串?看起来拆分单位分隔符会有点工作,但我会失去单位。这给了我2个字符串,可以进一步拆分,但似乎需要逐行功能。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

您可以直接在带有文本的列上使用字符串方法split

df['text'].str.split('(CLF|LF|EA)')

您可以使用捕获括号来保留分隔符

示例:

units ='(CLF|LF|EA)'
df =pd.DataFrame({'text':['aaaaaaa LF bbbbbbbb','123456 CLF 78910','!!!!!!!! EA @@@@@@@@@@']})
df.text.str.split(units)

返回:

0       [aaaaaaa , LF,  bbbbbbbb]
1          [123456 , CLF,  78910]
2    [!!!!!!!! , EA,  @@@@@@@@@@]
Name: text, dtype: object