2017-04-20 127 views
1

有沒有人有一個很好的方式,以便在一個循環中,您將創建一個新的數據框,或者如果它存在,只需添加一列到它?熊貓數據框。創建或添加列,最好的方法

我這樣做的時刻,但我敢肯定有一個更優雅的方式來做到這一點:

for fund in df: 
    _signal = computeSignal(someVar) 
    if 'dfSignal' not in locals(): 
     dfSignal = pd.DataFrame(_signal, index = df.index, columns = [fund]) 
    else: 
     dfSignal[fund]=pd.DataFrame(_signal,index = df.index) 

的人?

問候, 朱利安

+0

沒關係,檢查答案,如果答案是有幫助的,不要忘了[接受](HTTP ://meta.stackexchange.com/a/5235/295067)。 ;) – jezrael

回答

2

我把這個包在try/except結構:

dct = {k: _signal for k in df} 
try: 
    dfSignal = dfSignal.assign(**dct) 
except: 
    dfSignal = pd.DataFrame(dct, df.index)