正则表达式将数据帧字符串拆分为python中的列

时间:2019-04-13 18:43:04

标签: regex python-3.x pandas

我是新来的正则表达式。我必须使用正则表达式根据模式将数据框行分为3列。

数据框中的示例行:

"Sample String(just a / string) 04/04/2014 to ongoing"

我正在尝试使用正则表达式,但无法正常工作

pat = re.compile("(?P<String_Name>[a-zA-Z- )(/ ]*)(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})(?P<stop_date>[a-zA-Z]*)?")
df=new_df.text.str.extract(pat)

需要这样的输出:

String_Name = Sample String(just a / string)
Start_Date = 04/04/2014
Stop_Date = ongoing

1 个答案:

答案 0 :(得分:0)

您可以使用

qsort(arr, 2, sizeof(struct student), student_cmp);

请参见regex demo。 Regulex图:

enter image description here

熊猫测试:

r'(?P<String_Name>.*?)\s*(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})\sto\s+(?P<stop_date>.*)'

输出:

df = pd.DataFrame({'text':['Sample String(just a / string) 04/04/2014 to ongoing']})
rx = r'(?P<String_Name>.*?)\s*(?P<START_DATE>\d{1,2}/\d{1,2}/\d{2,4})\sto\s+(?P<stop_date>.*)'
df1 = df['text'].str.extract(rx)