我尝试过运行此代码:
for col1 in df.columns:
for col2 in df.columns:
if col1 != col2:
print col1 + ' and ' + col2
gb = df.groupby(col1)
run_line = 'gb.' + col2 + '.value_counts()'
count = exec run_line
print count
我收到此错误:
File "<ipython-input-21-6bcce6d6c562>", line 7
count = exec run_line
^
SyntaxError: invalid syntax
任何帮助我如何存储
的结果exec run_line
或如何运行
gb.col2.value_counts()
使用变量col2的内容
答案 0 :(得分:1)
通常,您希望避免使用exec
。幸运的是,你没有需要 exec
。如果您只需要访问在运行时之前未指定的对象的属性,请使用getattr
:
for col1 in df.columns:
for col2 in df.columns:
if col1 != col2:
print col1 + ' and ' + col2
gb = df.groupby(col1)
col2_attr = getattr(gb, col2)
count = col2_attr.value_counts()
请注意,如果AttributeError
没有col2_attr
方法,最后一行会引发value_counts
。