我有一个日期范围嵌套在字符串中的列,我需要检索开始日期和结束日期,并将它们放在新列中。下面是数据外观的一个示例。
A
foo_bar_2/27-6/30
bar_foo_3/07-4/01
foo_bar_6/19-7/30 我需要提取这些日期,而且我不能在索引上拆分,因为有些日期的长度不同--即: 12/27 vs 1/7。但是,它们的格式是相同的(_startdate-enddate)。我怎样才能得到开始和结束日期,并将它们放在自己的专栏中?例子如下:
A start_date end_date
foo_bar_2/27-6/30 2/27 6/30
bar_foo_3/7-4/1 3/7 4/1
foo_bar_6/19-7/30 6/19 7/30任何建议都有帮助
发布于 2020-12-04 17:49:29
你可以用提取
df[['start_date', 'end_date']] = df['A'].str.extract("(?P<start_date>\d{1,2}/\d{1,2})-(?P<end_date>\d{1,2}/\d{1,2})", expand=True)
print(df)输出
A start_date end_date
0 foo_bar_2/27-6/30 2/27 6/30
1 bar_foo_3/07-4/01 3/07 4/01
2 foo_bar_6/19-7/30 6/19 7/30作为一种替代办法:
df[['start_date', 'end_date']] = df['A'].str.extract("(\d{1,2}/\d{1,2})-(\d{1,2}/\d{1,2})", expand=True)最后,如果模式与样例输入中的模式类似,则由_或-拆分,并接受最后两个元素:
df[['start_date', 'end_date']] = df['A'].str.split('[_-]', expand=True).iloc[:, -2:]https://stackoverflow.com/questions/65148270
复制相似问题