Pandas 使用正则表达式

Pandas with regex

我的数据框中有一列会有多个值。我只需要过滤符合我的条件的值。

例如

df

col1
Tesla
Audi
BMW-N2204281200PE
SUPRA2204241300.75CE
TATA230612133.50PE

我只需要筛选像最后 3 行这样的值。这将是一个以字符开头的字符串,可能有符号(-、&、$)后跟字符,将有 6 位值,然后是一些价格,如 1300、1300.75,并以 PE 或 CE

如何使用 pandas 执行此操作? 另外我怎么能像 ['BMW-N','220428',1200PE], ['SUPRA','220424','1300.75CE' ] 这样拆分相同的符号?

您可以使用以下正则表达式:

df['col1'].str.extract('([a-zA-Z-&$]+)(\d{6})(\d+(?:\.\d+)?[PC]E)')

输出:

       0       1          2
0    NaN     NaN        NaN
1    NaN     NaN        NaN
2  BMW-N  220428     1200PE
3  SUPRA  220424  1300.75CE
4   TATA  230612   133.50PE

regex demo