Mit Pandas Version 0.19.0 habe ich einen Datenrahmen mit kompilierten regulären Ausdrücken innerhalb. Ich möchte den Datenrahmen durchlaufen und sehen, ob einer der regulären Ausdrücke mit einem Wert übereinstimmt. Ich kann es mit zwei for-Schleifen machen, aber ich kann nicht herausfinden, wie es geht, damit es einen Datenrahmen gleicher Größe zurückgibt.Python Schleife durch Datenrahmen 'Series' Objekt hat kein Attribut
import pandas as pd
import re
inp = [{'c1':re.compile('a'), 'c2':re.compile('b')}, {'c1':re.compile('c'),'c2':re.compile('d')}, {'c1':re.compile('e'),'c2':re.compile('f')}]
df = pd.DataFrame(inp)
for i,v in df.items():
for a in v:
if (a.match('a')):
print("matched")
else:
print("failed")
Dies schlägt fehl:
[a.match('a') for a in [v for i,v in df.items()]]
AttributeError: 'Series' object has no attribute 'match'
Was ich will:
[a.match('a') for a in [v for i,v in df.items()]]
c1 c2
0 <_sre.SRE_Match object; span=(0, 1), match='a'> None
1 None None
2 None None