2016-09-08 1 views
1

でループからのデータフレームを作成します。私は会社ティッカーのリストを持っているブルームバーグ機能

df = {'Ticker': ['AVON LN EQUITY', 'GFS LN EQUITY'], 'Value': [1., 2.]} 
df = pd.DataFrame(df) 

私はすべての、私はデータフレームを取得したいと思い、これを使用して、https://github.com/alex314159/blpapiwrapper

をBLPAPIラッパーを使用しています月額ベースでの価格。このため私はBLPクラスとBDH関数を使用しています。下記の設定(長いバージョンがリンクしている):私は1社の株式のためのデータフレームを取得することができ、これらを使用して

def bloom_func(x, func): 
    bloomberg = BLP() 
    return bloomberg.bdh(x, func, strOverrideField='BEST_FPERIOD_OVERRIDE', strOverrideValue='1GY') 
    bloomberg.closeSession() 

:単純化のため

def bdh(self, strSecurity='SPX Index', strData='PX_LAST', startdate=datetime.date(2013, 1, 1), enddate=datetime.date(2016, 9, 6), 
     adjustmentSplit=False, periodicity='MONTHLY', strOverrideField='', strOverrideValue=''): 

私はミニの関数を作成しました。

Price = bloom_func('VOD LN EQUITY', 'PX_LAST') 
print (c) 

私が使用して2社間でこれを実行しようとすると

はしかし、:

df1 = pd.concat([df.apply(lambda x: bloom_func(x)) for p in df['Ticker']]) 

私はValueErrorをを得る:渡された値の形状は(2、0)、インデックスは(2、2)を意味するものではされています。

+0

を考えていたよりも単純ました([] 'ティッカー' [DF。(bloom_func)を適用します])' – jezrael

答えて

1

は、私はあなたが `DF1は= pd.concat必要IIUC

for d in df['Ticker']: 
    x[d] = bloom_func(d) 
関連する問題