根据字符的位置对序列中的字符串进行切片

2024-05-16 00:09:20 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,在我的数据帧中,我希望对字符串进行切片,以便从数据中删除预缓冲。唯一的问题是这些数据的长度不同。所以我需要确定它应该从哪里开始

之前:

Day 1 - abc
Day 2 - bcd
DAY 10 - DFE

之后:

abc
bcd
DFE

我理解为什么下面的内容不起作用,但我想我会提供它作为一个起点

df['String'] = df.String.str.slice(start=df.String.str.find('-')+1)

Tags: 数据字符串内容dfstring切片sliceabc
2条回答

我认为您可以使用.split而不是.slice,这样就不用担心-的索引。所以在我看来,这样比较合适

df['String'] = df.String.str.split(' - ').apply(lambda x: x[-1])

注意 此方法还删除-周围的空白。如果在结果字符串上的破折号后需要空格,则只需删除空格,而不需要运算符,如:

df['String'] = df.String.str.split('-').apply(lambda x: x[-1])

更新

their answer中提到的@satilog之后,需要使用lambda从.split()获取最后一个单元格。我在这里修正了密码

您可以在每一行上使用.split,并由" "分割,然后应用lambda函数检索每一行中列表的最后一个元素

代码:

import pandas as pd

df = pd.DataFrame(data=["Day 1 - abc", "Day 2 - bcd", "DAY 10 - DFE"], columns=["String"])
df["String"] = df.String.str.split(" ").apply(lambda x: x[-1])

输出:

  String
0    abc
1    bcd
2    DFE

相关问题 更多 >