如何提取数字前的所有字符并扩展到另一列?

时间:2018-12-19 17:33:29

标签: python regex pandas

只是想知道我对正则表达式做错了什么(这是很新的东西)。

df
             tradingsymbol
0            USDEUR18D21P
1            KNIFY20DEC182700P

我正在尝试提取第一个数字之前的所有字符。并将其前面的部分提取到另一列中。

我尝试过:

df['tradingsymbol'].str.extract('^(\D)\d', expand=True)

它给了我所有NaN的结果。

我尝试了其他一些表达式,但都返回了NaN或给出了关于不平衡括号的错误。

我该怎么办?

谢谢。

预期o / p

 df
             tradingsymbol          symbol
0            USDEUR18D21P           USDEUR
1            KNIFY20DEC182700P      KNIFY

1 个答案:

答案 0 :(得分:1)

您只用\D捕获一个数字。您需要一个贪婪的修饰符:

^(\D+)\d