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
我的数据框中有一列会有多个值。我只需要过滤符合我的条件的值。
例如
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