2017-04-20 81 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) 
相关问题