如果行包含 DD/MM/YY 打印行中的日期
If line contains date in DD/MM/YY print line
我有一个数据库,类似于这个(这只是一个专栏):
OPÇÃO IBOVESPA - 13/01/2021
OPÇÃO IBOVESPA - 16/12/2020
IDICFPBB FPBB
OPD IDI/JPFT
Opção s/disp./Índice - IDIOPDFPD3
Opção s/disp./Índice - IDIOPDFPF5
Opção s/disp./Índice - IDIOPDJPF1
BBDC PN - 21/12/2020
BOVA CI - 21/12/2020
我需要一个代码 returns 只有包含日期并形成两列的行:
一列包含日期,另一列包含该行的第一个参数,例如:
OPÇÃO IBOVESPA | 13/01/2021
OPÇÃO IBOVESPA | 16/12/2020
BBDC PN | 21/12/2020
BOVA CI | 21/12/2020
我尝试使用正则表达式,但无法修复代码,你能帮我吗?
您可以使用 .str.contains
首先过滤包含日期的行,然后 split
分隔符 -
周围的那些行以获得所需的结果:
m = df['COL'].str.contains(r'\d{2}/\d{2}/\d{4}')
df.loc[m, 'COL'].str.split(r'\s-\s', expand=True)
或者您可以使用 .str.extract
和正则表达式捕获组来提取包含模式的行,其中第一个参数和日期围绕定界符 -
:
分隔
df['COL'].str.extract(r'(.+)\s-\s(\d{2}/\d{2}/\d{4})').dropna(how='all')
结果:
0 1
0 OPÇÃO IBOVESPA 13/01/2021
1 OPÇÃO IBOVESPA 16/12/2020
7 BBDC PN 21/12/2020
8 BOVA CI 21/12/2020
我有一个数据库,类似于这个(这只是一个专栏):
OPÇÃO IBOVESPA - 13/01/2021
OPÇÃO IBOVESPA - 16/12/2020
IDICFPBB FPBB
OPD IDI/JPFT
Opção s/disp./Índice - IDIOPDFPD3
Opção s/disp./Índice - IDIOPDFPF5
Opção s/disp./Índice - IDIOPDJPF1
BBDC PN - 21/12/2020
BOVA CI - 21/12/2020
我需要一个代码 returns 只有包含日期并形成两列的行: 一列包含日期,另一列包含该行的第一个参数,例如:
OPÇÃO IBOVESPA | 13/01/2021
OPÇÃO IBOVESPA | 16/12/2020
BBDC PN | 21/12/2020
BOVA CI | 21/12/2020
我尝试使用正则表达式,但无法修复代码,你能帮我吗?
您可以使用 .str.contains
首先过滤包含日期的行,然后 split
分隔符 -
周围的那些行以获得所需的结果:
m = df['COL'].str.contains(r'\d{2}/\d{2}/\d{4}')
df.loc[m, 'COL'].str.split(r'\s-\s', expand=True)
或者您可以使用 .str.extract
和正则表达式捕获组来提取包含模式的行,其中第一个参数和日期围绕定界符 -
:
df['COL'].str.extract(r'(.+)\s-\s(\d{2}/\d{2}/\d{4})').dropna(how='all')
结果:
0 1
0 OPÇÃO IBOVESPA 13/01/2021
1 OPÇÃO IBOVESPA 16/12/2020
7 BBDC PN 21/12/2020
8 BOVA CI 21/12/2020