【问题标题】:Python pandas extract variables from dataframePython pandas 从数据框中提取变量
【发布时间】:2016-02-20 16:11:21
【问题描述】:

将 DataFrame 列转换为变量的最佳方法是什么。我有下注条件,我使用 head(n=1)

back_bf_lay_bq = bb[(bb['bf_back_bq_lay_lose_net'] > 0) & (bb['bq_lay_price'] < 5) & (bb['bq_lay_price'] != 0) & (bb['bf_back_liquid'] > bb['bf_back_stake']) & (bb['bq_lay_liquid'] > bb['bq_lay_horse_win'])].head(n=1)

我想将列转换为变量并将它们传递给 API 以进行投注。所以我将 back_bf_lay_bq 转换为字典并提取值

    #Bets placements
    dd = pd.DataFrame.to_dict(back_bf_lay_bq, orient='list')

    #Betdaq bet placement
    bq_selection_id = dd['bq_selection_id'][0]
    bq_lay_stake = dd['bq_lay_stake'][0]
    bq_lay_price = dd['bq_lay_price'][0]
    bet_type = 2
    reset_count = dd['bq_count_reset'][0]
    withdrawal_sequence = dd['bq_withdrawal_sequence'][0]
    kill_type = 2

    betdaq_request = betdaq_api.PlaceOrdersNoReceipt(bq_selection_id,bq_lay_stake,bq_lay_price,bet_type,reset_count,withdrawal_sequence,kill_type)

我认为这不是最有效的方法,它会时不时带来错误
bq_selection_id = dd['bq_selection_id'][0] IndexError: 列表索引超出范围

那么您能否提出一种更好的方法来从 DataFrame 获取值并将它们传递给 API?

【问题讨论】:

标签: python python-2.7 python-3.x pandas


【解决方案1】:

IIUC 您可以使用iloc 获取第一行,然后使用列子集对数据框进行切片并将其传递给变量。类似的东西:

bq_selection_id, bq_lay_stake, bq_lay_price, withdrawal_sequence = back_bf_lay_bq[['bq_selection_id', 'bq_lay_stake', 'bq_lay_price', 'withdrawal_sequence']].iloc[0]

【讨论】:

  • 谢谢。这正是我所需要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多