Python循环遍历数据框架中的'Series'对象没有属性

3
使用 pandas 版本为 0.19.0,我有一个包含编译过的正则表达式的数据框。我想循环遍历该数据框并查看是否有任何正则表达式与值匹配。我可以使用两个 for 循环来完成,但我无法弄清如何使其返回一个相同大小的数据框。
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()]]

属性错误:'Series'对象没有'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
1个回答

2

看起来你需要使用applymap方法。在这里查看文档获取更多信息。

df.applymap(lambda x: x.match('a'))

输出:

这里输入图片描述


(注:此文本已经被翻译成中文。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接