目前,我正在使用一个Excel工作表作为评估的例子。它是一个导入的副本,其中的Excel往往会用混合条目填充列。
在Excel中,它看起来像这样:Excel sheet
我的代码在VS Code中看起来像这样:
# 03.01.2024
# Regex - Reguläre Ausdrücke zum Filtern, hier mit dem Frame aus der Auswertung
import pandas as pd
import numpy as np
from datetime import datetime
from pandas import *
# Einlesen der Excel
excel_file = 'F:\\Google Drive\\Matthias\\Arbeit\\ISQM\\08 - Tool Menü - Skripte DD 19.12.2023\\Testskripte\\value_cnts_2.xlsx'
xlsx = ExcelFile(excel_file)
excel_Tabelle = xlsx.sheet_names[0]
df = xlsx.parse(excel_Tabelle)
# df['Vorgänger'] = df['Vorgänger'].fillna(0)
#df = df['Nachfolger'].str.replace('----', '')
df['Verknüpfung1'] = df['Nachfolger'].str.extract('(?P<EE>EE)')
#df['Verknüpfung3'] = df['Nachfolger'].str.extract('[EA+,AA,EA-]')
df['Verknüpfung2'] = df['Nachfolger'].str.extract('(?P<EE>AA)')
df['Verknüpfung1'] = df['Verknüpfung1'].fillna(0)
df['Verknüpfung2'] = df['Verknüpfung2'].fillna(0)
df`
`
字符串
我把excel工作表写进pandas框架中。正如你所看到的,我正在尝试提取函数中的正则表达式。
使用regex 101编辑器,我发现了一些regex,命名的捕获组,它给予我这样的输出:
Nachfolger Verknüpfung1 Verknüpfung2
0 54;20 0 0
1 ---- 0 0
2 ---- 0 0
3 ---- 0 0
4 ---- 0 0
5 ---- 0 0
6 ---- 0 0
7 ---- 0 0
8 ---- 0 0
9 ---- 0 0
10 ---- 0 0
11 ---- 0 0
12 ---- 0 0
13 ---- 0 0
14 ---- 0 0
15 ---- 0 0
16 21;4;49;50;51 0 0
17 52 0 0
18 ---- 0 0
19 52;128AA;207;22;223 0 AA
20 ---- 0 0
21 52;24 0 0
22 28 0 0
23 ---- 0 0
24 52;227;27 0 0
25 30 0 0
26 227 0 0
27 ---- 0 0
28 52;31 0 0
29 ---- 0 0
30 138EE;34 EE 0
31 ---- 0 0
32 139EE;36 EE 0
33 ---- 0 0
34 140EE;38 EE 0
35 ---- 0 0
36 141EE;40 EE 0
37 ---- 0 0
型
我想过滤包含字符的列。我想对它们进行计数。
我现在的问题是,你可以只在一列中使用正则表达式。我尝试了另一个表达式([EA+,AA,EA-]),我只是得到一个错误。
谢谢你,谢谢你
1条答案
按热度按时间p4tfgftt1#
您的期望并不明确。但是,您可以尝试:
字符串
Regex101