首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在3个不同的场景中使用切片和选择中间字符

如何在3个不同的场景中使用切片和选择中间字符
EN

Stack Overflow用户
提问于 2019-05-10 15:17:42
回答 2查看 19关注 0票数 1

我有一个数据帧,其中Date contains列来自不需要的字符,我只需要Y,M,D。

场景1: His_205_26Oct2017

场景2: His_40_26Oct2017

场景3: His_3_26Oct2017

代码语言:javascript
复制
  ScenarioDate
    His_205_26Oct2017
    His_359_24Mar2017
    His_380_23Feb2017
    His_392_07Feb2017
    His_40_14Jun2018
    His_2_12Jul2018

我试着使用下面的代码

代码语言:javascript
复制
df2['ScenarioDate'].map(lambda x: str(x)[7:])

但是我得到了不同的输出

场景1:_26Oct2017

场景2:2017年10月26日

场景3: Oct2017

我需要有输出为"26Oct2017“的所有3个方案

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-10 15:21:49

在包含2个整数、3个字符和4个整数的_之后,使用Series.str.extract with pattern作为匹配值:

代码语言:javascript
复制
df['date'] = df['ScenarioDate'].str.extract('_(\d{2}[a-zA-Z]{3}\d{4})')
print (df)
            ScenarioDate       date
0      His_205_26Oct2017  26Oct2017
1      His_359_24Mar2017  24Mar2017
2      His_380_23Feb2017  23Feb2017
3      His_392_07Feb2017  07Feb2017
4       His_40_14Jun2018  14Jun2018
5        His_2_12Jul2018  12Jul2018
6   His_205_26Oct2017_AD  26Oct2017
7  His_205_26Oct2017_ABC  26Oct2017
票数 1
EN

Stack Overflow用户

发布于 2019-05-10 15:23:39

代码语言:javascript
复制
import pandas as pd

df['new date'] = pd.to_datetime(df['ScenarioDate'].split('_')[-1])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56072600

复制
相关文章

相似问题

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