2024-05-16 00:09:20 发布
网友
因此,在我的数据帧中,我希望对字符串进行切片,以便从数据中删除预缓冲。唯一的问题是这些数据的长度不同。所以我需要确定它应该从哪里开始
之前:
Day 1 - abc Day 2 - bcd DAY 10 - DFE
之后:
abc bcd DFE
我理解为什么下面的内容不起作用,但我想我会提供它作为一个起点
df['String'] = df.String.str.slice(start=df.String.str.find('-')+1)
我认为您可以使用.split而不是.slice,这样就不用担心-的索引。所以在我看来,这样比较合适
.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()
您可以在每一行上使用.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
我认为您可以使用
.split
而不是.slice
,这样就不用担心-
的索引。所以在我看来,这样比较合适注意 此方法还删除
-
周围的空白。如果在结果字符串上的破折号后需要空格,则只需删除空格,而不需要运算符,如:更新
在their answer中提到的@satilog之后,需要使用lambda从
.split()
获取最后一个单元格。我在这里修正了密码您可以在每一行上使用
.split
,并由" "
分割,然后应用lambda函数检索每一行中列表的最后一个元素代码:
输出:
相关问题 更多 >
编程相关推荐