【发布时间】:2019-12-16 17:37:48
【问题描述】:
这是我的数据样本:
a=pd.DataFrame({'ID':[1,2,3,4,5],
'Str':['aa aafae afre ht4','v fef 433','1234334 a','bijf 049tu0q4g vie','aaa 1']})
现在我只想在第一个空白字符之前保留子字符串。我可以找到第一个空白字符的位置。但是我不知道下一部分该怎么做。
我正在尝试打印一个句子的前三个单词的第一个字母,但是在d4 = y.find(" ", d3) 部分,程序没有将其识别为整数,如果我将其转换为整数,它导致错误,因为我在 base 10 中。
我该如何解决这个问题?
【问题讨论】:
-
导入 re,然后 before_blank_char = re.sub(" .*", "", x)。如果您将破折号视为空白字符,则可以将“[ -].*”作为第一个参数传递。此外,如果您知道第一个空白字符的位置为 y,则可以使用 my_string[:y]。但是正则表达式很方便,只需一行。
-
谢谢。但是你能不能更具体一些,比如给我一个真实的例子。我对这些真的很陌生。
-
没问题。正则表达式似乎很棘手,但一些基础知识可以走很长的路。 import re/x = "这是一个只有空格的句子"/y"这个-这里的句子有破折号"/x1=re.sub(" .*", "", x)y1=re.sub(" .* ", "", y)/x2=re.sub("[- ].*", "", x)y2=re.sub("[- ].*", "", y)/print(x1 , y1, x2, y2) (抱歉格式错误,匆忙,但用回车替换 /)。您应该会看到差异。
标签: python string pandas find substring