2017-09-28 109 views
0
def time_constant_values(time_value, df, band_list): 
     try: 
      time_value in df.index 
     except KeyError: 
      print('The time value does not exist!') 
     else: 
      constants = [] 
      for band in band_list: 
       constants.append(df.loc[time_value][band]) 
      t0_dict = dict(zip(band_list, constants)) 
      return t0_dict 

熊貓數據幀包含格式爲hh:mm:ss的索引中的時間值。我在做什麼除錯部分?在索引中搜索熊貓數據幀中的值

我想訪問特定的時間行爲某些colummns,然後形成一個字段列標籤作爲鍵和數據值作爲值。

謝謝!

+0

我在這裏看到了很多東西,首先什麼是你想在你的try塊做的,並且有一個else語句沒有如果。 – bhansa

+2

@bhansa其他部分是好的(有效的Python語法),還有其他問題... –

+0

如果您發現它有用,請接受答案,並堅持一個答案。謝謝。 –

回答

2

密鑰的不存在不會拋出KeyError。它只是返回Falseelse始終運行,然後在對不存在的密鑰進行索引時遇到問題。嘗試使用if

def time_constant_values(df, time_value, band_list): 
    if time_value in df.index: 
     return df.loc[time_value, band_list].to_dict() 
+0

當我嘗試用你的代碼調用函數時,我得到「KeyError:'10:28:00'」,儘管我知道這是索引中的一個值。它有什麼不同,我的索引值是timedelta對象? @COLDSPEED –

+1

@Brain_overflowed它不應該。我希望你的代碼和我的回答完全一樣。如果是,請嘗試將'time_value'轉換爲timedelta。 –