首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bloomberg数据返回错误的数据

bloomberg数据返回错误的数据
EN

Stack Overflow用户
提问于 2022-06-17 10:10:07
回答 1查看 62关注 0票数 0

我这样做很好,直到创建一个测试错误(注释掉的行):

代码语言:javascript
复制
import pdblp

# create a connection to bbg
con = pdblp.BCon()
con.start()

ticker = ['gbpeur curncy', 'usdeur curncy']
# ticker = ['gbpeur curncy', 'usdeur curncy', 'somejunk curncy']   <-- create a test error
field = ['Ticker', 'px_last']

df = con.ref(ticker, field)
print(df)

返回此数据文件:

代码语言:javascript
复制
          ticker    field   value
0  gbpeur curncy   Ticker  GBPEUR
1  gbpeur curncy  px_last  1.1698
2  usdeur curncy   Ticker  USDEUR
3  usdeur curncy  px_last  0.9507

现在完全相同,但是添加一个错误(不存在代码)。

回报如下:

代码语言:javascript
复制
ValueError: Unknow security 'somejunk curncy'

是否有标志或覆盖可以简单地覆盖坏数据以获得结果。

预期结果:

代码语言:javascript
复制
          ticker     field   value
0  gbpeur curncy    Ticker  GBPEUR
1  gbpeur curncy   px_last  1.1698
2  usdeur curncy    Ticker  USDEUR
3  usdeur curncy   px_last  0.9507
4  somejunk curncy  Ticker  None    <-- error like this
5  somejunk curncy px_last  None    <-- error like this
EN

回答 1

Stack Overflow用户

发布于 2022-06-17 10:32:23

这是一种解决方案,它通过逐个检查和消除坏数据来返回较短的数据。我希望有覆盖的方法会比这种方法更好。

代码语言:javascript
复制
#%%
import pdblp

# create a connection to bbg
con = pdblp.BCon()
con.start()


ticker = ['gbpeur curncy', 'usdeur curncy', 'somejunk curncy']
field = ['Ticker', 'px_last']

# test each one for errors
good_tickers = []
for t in ticker:
    try:
        df = con.ref(t, field)
        good_tickers.append(t)
    except ValueError:
        print(f'error found with: {t}') 

good_tickers
df = con.ref(good_tickers, field)
print(df)

其结果是:

代码语言:javascript
复制
error found with: somejunk curncy
          ticker    field   value
0  gbpeur curncy   Ticker  GBPEUR
1  gbpeur curncy  px_last  1.1696
2  usdeur curncy   Ticker  USDEUR
3  usdeur curncy  px_last  0.9508
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72657726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档