pandas 使用python切片或split方法拆分字符串

3htmauhk  于 2023-03-11  发布在  Python
关注(0)|答案(1)|浏览(165)

panda Dataframe 中的一列包含如下字符串: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?
jgovgodb

jgovgodb1#

此处可以将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]+)捕获全大写类型

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

相关问题