使用 python slice 或 split 方法拆分字符串

Split a string using python slice or split method

提问人:Thomas Amal 提问时间:3/8/2023 更新时间:3/9/2023 访问量:62

问:

pandas 数据帧中的一列具有如下字符串: BANKNIFTY2330935500PE、FINNIFTY2330618050PE、NIFTY23DEC21000CE、TCS23MAR3000PE 字符串中的第一个(所有字母都大写)是安全名称,如 BANKNIFTY、FINNIFTY、NIFTY、TCS 字符串的第二部分包含日期,例如:23309、23306、23DEC、23MAR 接下来是值:35500、18050、21000、21000、3000 最后是类型:CE、PE

我试过这种方式:

      security = df.symbol.str[0:9]
      type = df.symbol.str[-2:]
      value = df.symbol.str[-7:-2]```
Can anyone suggest a better method of slicing or splitting the string into four parts?



熊猫 分割 切片

评论


答:

0赞 Tim Biegeleisen 3/9/2023 #1

您可以在此处与多个捕获组一起使用:str.extract

df[["security", "date", "value", "type"]] = df["col"].str.extract(r'([A-Z]+)(\d{5}|\d{2}[A-Z]{3})(\d+)([A-Z]+)')

这里使用的正则表达式模式表示匹配和捕获:

  • ([A-Z]+)捕获全大写安全名称
  • (\d{5}|\d{2}[A-Z]{3})捕获 5 位日期或 DDMON
  • (\d+)捕获一个或多个数字的值
  • ([A-Z]+)捕获全大写类型

这是一个有效的正则表达式演示

评论

0赞 Thomas Amal 3/10/2023
谢谢。这对我来说是相当多的学习。