あなたは正規表現でstr.extract
方法を試すことができます:(?P<sno>\d+)\.\s(?P<sdata>\w+)\s\((?P<year>\d+)\)
は(?P<name>
で行われる)捕捉基を命名することなく(\d+)\.\s(\w+)\s\((\d+)\)
に簡略化することができる正規表現、上
data = ["1. stock1 (1991)",
"3. stock13 (1993)",
"5. stock19 (1999)",
"89. stock105 (2001)"]
s = pd.Series(data)
s.str.extract("(?P<sno>\d+)\.\s(?P<sdata>\w+)\s\((?P<year>\d+)\)", expand=True)
# sno sdata year
#0 1 stock1 1991
#1 3 stock13 1993
#2 5 stock19 1999
#3 89 stock105 2001
ブレークダウン。 (\d+)
、(\w+)
と(\d+)
はそれぞれs.no、stocknameと年をキャプチャします。
それとも、単に空白で分割したい、その後、クリーン列までのあなたの本当のデータがどのように見えるかに応じて、可能性があります
(s.str.split(" ", expand=True)
# strip period and parenthesis
.apply(lambda col: col.str.strip(".()"))
# rename columns
.rename(columns={0: "s.no", 1: "sdata", 2: "year"}))
# s.no sdata year
#0 1 stock1 1991
#1 3 stock13 1993
#2 5 stock19 1999
#3 89 stock105 2001
あなたは正規表現(正規表現)のためのフラグを追加することもできますあなたの質問に。 – Jon
これはパンダよりも正規表現の問題のようです – Jon