在Python中的特定字符之后删除部分字符串
Posted
技术标签:
【中文标题】在Python中的特定字符之后删除部分字符串【英文标题】:Remove part of string after a specific character in Python 【发布时间】:2020-06-17 19:46:37 【问题描述】:给定一个time
列如下:
time
0 2019Y8m16d10h
1 2019Y9m3d10h
2 2019Y9m3d10h58s
3 2019Y9m3d10h
如何删除以d
开头的子字符串,我尝试过使用df['time'].str.split('d')[0]
,但它不起作用。
我想要的结果会是这样。谢谢。
time
0 2019Y8m16d
1 2019Y9m3d
2 2019Y9m3d
3 2019Y9m3d
【问题讨论】:
【参考方案1】:您很接近,需要str[0]
来选择列表,然后添加d
:
df['time'] = df['time'].str.split('d').str[0].add('d')
或者:
df['time'] = df['time'].str.split('(d)').str[:2].str.join('')
print (df)
time
0 2019Y8m16d
1 2019Y9m3d
2 2019Y9m3d
3 2019Y9m3d
或者使用Series.str.extract
:
df['time'] = df['time'].str.extract('(.+d)')
print (df)
time
0 2019Y8m16d
1 2019Y9m3d
2 2019Y9m3d
3 2019Y9m3d
【讨论】:
谢谢,这可行,但d
也会丢失,我想保留它。【参考方案2】:
一种可能的解决方案:
df['time'].str.extract(r'([^d]+d)')
【讨论】:
【参考方案3】:或者您可以简单地使用应用功能来解决如下目的:
df.apply(lambda x: x['time'].split('d')[0]+'d',axis=1)
【讨论】:
以上是关于在Python中的特定字符之后删除部分字符串的主要内容,如果未能解决你的问题,请参考以下文章
Python - 在特定字符串的第一个实例之后删除文本并使用不同的字符串再次执行