2015-09-09 18 views
-2

我曾嘗試運行此代碼的對象的屬性:的Python:HOWTO執行字符串的內容作爲

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

回答

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方法。

+0

好!那就是訣竅。我是python的新手,對熊貓來說真的很陌生。 – Idowu

相關問題