获取第2和第3斜杠之间的值

时间:2018-06-18 05:40:03

标签: python pandas

我是python的新手,1。我正在尝试应用正则表达式,甚至提取Pandas Dataframe Column的最后6位数(所有行)。

基本上我试图在pandas列中的第二个和第三个斜杠0000/00000/00/000之间提取值。 用于提取pandas数据框'data_extract'的最后6位数字,列名为'extract'的函数是data_extracted=data_extract.extract.str[:-4]

df.head()看起来像这样[![在此输入图像描述] [1]] [1]

我正在尝试提取最后6位数字并存储在新列中或提取第2和第3个斜杠之间的数字'/'并存储在pandas dataframe中的新列中。 根据Mohamed Thasin的建议,应用Lamba表达式[![在此处输入图像描述] [2]] [2] 因为df['Numbers'].apply(lambda x: x.split('/'))通过在'/'的基础上进行拆分而在数组中产生。我如何获得阵列的第二个索引?

2 个答案:

答案 0 :(得分:3)

这里的regex似乎能够在第2和第3斜杠之间得到任何东西。该链接包含我使用的所有语法的所有解释。

^(?:[^\/]*\/){2}([^\/]*)\/.*$

基本上,我使用了否定集来匹配除分隔符(/)之外的所有内容并捕获第二个和第三个分隔符之间的所有内容

希望它有所帮助:)

答案 1 :(得分:1)

试试这个,

df['Numbers'].apply(lambda x: x.split('/')[2]), This splits the Dataframe (all rows) for every occurrence of '/' and then takes the value between 2nd and 3rd '/'.

如果包含意外格式,

df['Numbers'].apply(lambda x: x.split('/')[2] if(len(x.split('/')))==4 else '')

这是为了进行健全性检查,如果在拆分后列表中没有包含4个元素,那么它不会抛出索引超出范围的错误,而是填充了'''一片空白。