3
パンダバージョン0.19.0を使用して、コンパイル済みの正規表現を含むデータフレームを内部に持っています。私は、データフレームをループして、正規表現のどれかが値と一致するかどうかを確認したい。私は2つのforループでそれを行うことができますが、同じサイズのデータフレームを返すようにする方法を理解することはできません。Dataframe 'Series'オブジェクトのPythonループには属性がありません
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")
これは失敗します。
[a.match('a') for a in [v for i,v in df.items()]]
AttributeError: 'Series' object has no attribute 'match'
を私が欲しいもの:
[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