首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将字符串的一部分从列复制到熊猫的新列中

如何将字符串的一部分从列复制到熊猫的新列中
EN

Stack Overflow用户
提问于 2020-12-04 17:44:36
回答 1查看 45关注 0票数 0

我有一个日期范围嵌套在字符串中的列,我需要检索开始日期和结束日期,并将它们放在新列中。下面是数据外观的一个示例。

代码语言:javascript
运行
复制
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)。我怎样才能得到开始和结束日期,并将它们放在自己的专栏中?例子如下:

代码语言:javascript
运行
复制
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

任何建议都有帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-04 17:49:29

你可以用提取

代码语言:javascript
运行
复制
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)

输出

代码语言:javascript
运行
复制
                   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

作为一种替代办法:

代码语言:javascript
运行
复制
df[['start_date', 'end_date']] = df['A'].str.extract("(\d{1,2}/\d{1,2})-(\d{1,2}/\d{1,2})", expand=True)

最后,如果模式与样例输入中的模式类似,则由_-拆分,并接受最后两个元素:

代码语言:javascript
运行
复制
df[['start_date', 'end_date']] = df['A'].str.split('[_-]', expand=True).iloc[:, -2:]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65148270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档